# Zalvena Service A fork of Aptabase Server software, modified to only work with projects using Zalvena. ## Planned Changes - [x] Revamp emails - [ ] Revamp design - [ ] Use Mona Font - [ ] Replace sidebar layout with header - [ ] Replace Tabler icons with Iconoir - [x] New login screens - [ ] Add SudoVanilla Gateway OpenID Login - [ ] Add new instruction screens - [ ] Remove all traces of Aptabase trademarks, branding, and name to differentiate Zalvena from Aptabase - [ ] Remove all Aptabase Cloud functions including Billing, US/EU Regions, and more **Maybe** - Replace usage of React with Astro? 🤔 ## Selfhosting ```yaml # docker-compose.yml services: aptabase_db: container_name: aptabase_db image: postgres:15-alpine restart: always volumes: - ./tmp/db-data:/var/lib/postgresql/data environment: POSTGRES_USER: aptabase POSTGRES_PASSWORD: 0000000000000000000000000000000000000000000000000000000000000000 aptabase_events_db: container_name: aptabase_events_db image: clickhouse/clickhouse-server:23.8.4.69-alpine restart: always volumes: - ./tmp/events-db-data:/var/lib/clickhouse environment: CLICKHOUSE_USER: aptabase CLICKHOUSE_PASSWORD: 0000000000000000000000000000000000000000000000000000000000000000 ulimits: nofile: soft: 262144 hard: 262144 aptabase: container_name: aptabase_app image: oci.registry.sudovanilla.org/zalvena restart: always env_file: - ./.env volumes: - /etc/hosts:/etc/hosts depends_on: - aptabase_events_db - aptabase_db ports: - 6521:8080 ``` ```bash # .env BASE_URL="https://zv.example.org" AUTH_SECRET="Ah6Lm3h8Qmnhm8oDfw09AOUYEOMKpzfqIFPjBA2waLPm9SD65BA1eSXde9OS80nE" DATABASE_URL="Server=zalvena_database;Port=5432;User Id=zalvena;Password=0000000000000000000000000000000000000000000000000000000000000000;Database=zalvena" CLICKHOUSE_URL="Host=zalvena_events;Port=8123;Username=zalvena;Password=0000000000000000000000000000000000000000000000000000000000000000" SMTP_HOST="smtp.resend.com" SMTP_PORT="465" SMTP_USERNAME="resend" SMTP_PASSWORD="" SMTP_FROM_ADDRESS="no-reply@example.org" ``` For NGINX, use the following for `/`: ```conf if ($request_method = OPTIONS) { return 204; } if ($http_origin = ''){ set $http_origin "*"; } proxy_hide_header Access-Control-Allow-Origin; add_header Access-Control-Allow-Origin $http_origin; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Methods 'GET, POST, DELETE, PUT, OPTIONS' always; add_header Access-Control-Allow-Headers * always; ``` > For NGINX Proxy Manager, you'll need to add `/` with the configuration in 'Custom locations', as this won't work in 'Advanced'. ## License Aptabase and Zalvena Service is open-source under the [AGPLv3 license](./LICENSE). You can use it for free, but you must share any changes you make to the code.