diff --git a/blueprints/rustrak-full/docker-compose.yml b/blueprints/rustrak-full/docker-compose.yml new file mode 100644 index 00000000..16f734c7 --- /dev/null +++ b/blueprints/rustrak-full/docker-compose.yml @@ -0,0 +1,49 @@ +version: "3.8" + +services: + rustrak-server: + image: abians7/rustrak-server:v0.2.1-postgres + restart: unless-stopped + environment: + - HOST=0.0.0.0 + - PORT=8080 + - RUST_LOG=info + - SSL_PROXY=true + - DATABASE_URL=postgres://rustrak:${POSTGRES_PASSWORD}@postgres:5432/rustrak + - SESSION_SECRET_KEY=${SESSION_SECRET_KEY} + - CREATE_SUPERUSER=${CREATE_SUPERUSER} + ports: + - 8080 + depends_on: + postgres: + condition: service_healthy + + rustrak-ui: + image: abians7/rustrak-ui:v0.1.6 + restart: unless-stopped + environment: + - RUSTRAK_API_URL=${RUSTRAK_API_URL} + ports: + - 3000 + depends_on: + - rustrak-server + + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=rustrak + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=rustrak + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U rustrak -d rustrak"] + interval: 10s + timeout: 5s + retries: 5 + expose: + - 5432 + +volumes: + postgres_data: diff --git a/blueprints/rustrak-full/rustrak.svg b/blueprints/rustrak-full/rustrak.svg new file mode 100644 index 00000000..11d87e47 --- /dev/null +++ b/blueprints/rustrak-full/rustrak.svg @@ -0,0 +1,6 @@ + + + + diff --git a/blueprints/rustrak-full/template.toml b/blueprints/rustrak-full/template.toml new file mode 100644 index 00000000..383f486f --- /dev/null +++ b/blueprints/rustrak-full/template.toml @@ -0,0 +1,27 @@ +[variables] +main_domain = "${domain}" +api_domain = "${domain}" +postgres_password = "${password:32}" +session_secret_key = "${password:64}" +admin_email = "${email}" +admin_password = "${password:16}" +create_superuser = "${admin_email}:${admin_password}" +rustrak_api_url = "https://${api_domain}" + +[config] +env = [ + "POSTGRES_PASSWORD=${postgres_password}", + "SESSION_SECRET_KEY=${session_secret_key}", + "CREATE_SUPERUSER=${create_superuser}", + "RUSTRAK_API_URL=${rustrak_api_url}", +] + +[[config.domains]] +serviceName = "rustrak-ui" +port = 3000 +host = "${main_domain}" + +[[config.domains]] +serviceName = "rustrak-server" +port = 8080 +host = "${api_domain}" diff --git a/blueprints/rustrak/docker-compose.yml b/blueprints/rustrak/docker-compose.yml new file mode 100644 index 00000000..e4c52b0f --- /dev/null +++ b/blueprints/rustrak/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.8" + +services: + rustrak: + image: abians7/rustrak-server:v0.2.1 + restart: unless-stopped + environment: + - HOST=0.0.0.0 + - PORT=8080 + - RUST_LOG=info + - SSL_PROXY=true + - SESSION_SECRET_KEY=${SESSION_SECRET_KEY} + - CREATE_SUPERUSER=${CREATE_SUPERUSER} + volumes: + - rustrak_data:/data + ports: + - 8080 + +volumes: + rustrak_data: diff --git a/blueprints/rustrak/rustrak.svg b/blueprints/rustrak/rustrak.svg new file mode 100644 index 00000000..11d87e47 --- /dev/null +++ b/blueprints/rustrak/rustrak.svg @@ -0,0 +1,6 @@ + + + + diff --git a/blueprints/rustrak/template.toml b/blueprints/rustrak/template.toml new file mode 100644 index 00000000..819f6f85 --- /dev/null +++ b/blueprints/rustrak/template.toml @@ -0,0 +1,17 @@ +[variables] +main_domain = "${domain}" +session_secret_key = "${password:64}" +admin_email = "${email}" +admin_password = "${password:16}" +create_superuser = "${admin_email}:${admin_password}" + +[config] +env = [ + "SESSION_SECRET_KEY=${session_secret_key}", + "CREATE_SUPERUSER=${create_superuser}", +] + +[[config.domains]] +serviceName = "rustrak" +port = 8080 +host = "${main_domain}" diff --git a/meta.json b/meta.json index 2022bca3..653a7985 100644 --- a/meta.json +++ b/meta.json @@ -6127,6 +6127,45 @@ "rust" ] }, + { + "id": "rustrak", + "name": "Rustrak", + "version": "0.2.1", + "description": "Self-hosted error tracking compatible with Sentry SDKs. Server only, written in Rust with <100MB memory footprint and SQLite storage. No external database required.", + "logo": "rustrak.svg", + "links": { + "github": "https://github.com/AbianS/rustrak", + "website": "https://abians.github.io/rustrak/", + "docs": "https://abians.github.io/rustrak/" + }, + "tags": [ + "monitoring", + "error-tracking", + "sentry", + "rust", + "observability" + ] + }, + { + "id": "rustrak-full", + "name": "Rustrak (Full Stack)", + "version": "0.2.1", + "description": "Self-hosted error tracking compatible with Sentry SDKs. Includes server, web dashboard UI, and PostgreSQL. Written in Rust with <100MB memory footprint.", + "logo": "rustrak.svg", + "links": { + "github": "https://github.com/AbianS/rustrak", + "website": "https://abians.github.io/rustrak/", + "docs": "https://abians.github.io/rustrak/" + }, + "tags": [ + "monitoring", + "error-tracking", + "sentry", + "rust", + "observability", + "postgresql" + ] + }, { "id": "rutorrent", "name": "ruTorrent",