diff --git a/Dockerfile b/Dockerfile index 125fe6d..44887cb 100755 --- a/Dockerfile +++ b/Dockerfile @@ -32,3 +32,12 @@ COPY --from=webapp /work/wwwroot ./wwwroot COPY LICENSE . ENTRYPOINT ["dotnet", "Aptabase.dll"] + +# Metadata +LABEL org.opencontainers.image.title="Zalvena" +LABEL org.opencontainers.image.vendor="SudoVanilla" +LABEL org.opencontainers.image.description="Fork of Aptabase" +LABEL org.opencontainers.image.licenses="AGPLv3" +LABEL org.opencontainers.image.url="https://ark.sudovanilla.org/Korbs/Zalvena/" +LABEL org.opencontainers.image.source="https://ark.sudovanilla.org/Korbs/Zalvena/" +LABEL org.opencontainers.image.version="0.0.3" \ No newline at end of file diff --git a/README.md b/README.md index c5c919e..13dd047 100755 --- a/README.md +++ b/README.md @@ -69,6 +69,80 @@ A fork of Aptabase Server software, modified to only work with projects using Za **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=aptabase_db;Port=5432;User Id=aptabase;Password=0000000000000000000000000000000000000000000000000000000000000000;Database=aptabase" +CLICKHOUSE_URL="Host=aptabase_events_db;Port=8123;Username=aptabase;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. \ No newline at end of file diff --git a/build.docker.sh b/build.docker.sh new file mode 100644 index 0000000..8d48a04 --- /dev/null +++ b/build.docker.sh @@ -0,0 +1,3 @@ +# SudoVanilla Registry accepts OCI images instead of Docker images, +# so `buidah` build tool is used instead. +buildah build -t oci.registry.sudovanilla.org/zalvena --no-cache \ No newline at end of file