No description
Find a file
2025-02-21 02:44:27 -05:00
etc :init: Init 2025-02-19 16:44:17 -05:00
src Release 'v0.0.4' 2025-02-21 02:40:42 -05:00
.dockerignore :init: Init 2025-02-19 16:44:17 -05:00
.env.sample Release 'v0.0.4' 2025-02-21 02:40:42 -05:00
.gitignore update 2025-02-20 01:47:01 -05:00
build.docker.sh Release 'v0.0.4' 2025-02-21 02:40:42 -05:00
CHANGES.md Release 'v0.0.4' 2025-02-21 02:40:42 -05:00
docker-compose.yml Release 'v0.0.4' 2025-02-21 02:40:42 -05:00
Dockerfile Release 'v0.0.4' 2025-02-21 02:40:42 -05:00
LICENSE :init: Init 2025-02-19 16:44:17 -05:00
README.md Release 'v0.0.4' 2025-02-21 02:40:42 -05:00

Zalvena Service

A fork of Aptabase Server software, modified to only work with projects using Zalvena.

Planned Changes

  • Revamp emails
  • Revamp design
    • Use Mona Font
    • Replace sidebar layout with header
    • Replace Tabler icons with Iconoir
    • 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

# 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
# .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 /:

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. You can use it for free, but you must share any changes you make to the code.