diff --git a/deploy/Caddyfile b/deploy/Caddyfile new file mode 100644 index 0000000..5d3b868 --- /dev/null +++ b/deploy/Caddyfile @@ -0,0 +1,16 @@ +demo.getnora.io { + reverse_proxy nora:4000 + + encode gzip + + header { + -Server + X-Content-Type-Options nosniff + X-Frame-Options DENY + } + + log { + output stdout + format console + } +} diff --git a/deploy/README.md b/deploy/README.md new file mode 100644 index 0000000..8d7dd68 --- /dev/null +++ b/deploy/README.md @@ -0,0 +1,57 @@ +# NORA Demo Deployment + +## DNS Setup + +Add A record: +``` +demo.getnora.io → +``` + +## Deploy + +```bash +# Clone repo +git clone https://github.com/getnora-io/nora.git +cd nora/deploy + +# Start +docker compose up -d + +# Check logs +docker compose logs -f +``` + +## URLs + +- **Web UI:** https://demo.getnora.io/ui/ +- **API Docs:** https://demo.getnora.io/api-docs +- **Health:** https://demo.getnora.io/health + +## Docker Usage + +```bash +# Tag and push +docker tag myimage:latest demo.getnora.io/myimage:latest +docker push demo.getnora.io/myimage:latest + +# Pull +docker pull demo.getnora.io/myimage:latest +``` + +## Management + +```bash +# Stop +docker compose down + +# Restart +docker compose restart + +# View logs +docker compose logs -f nora +docker compose logs -f caddy + +# Update +docker compose pull +docker compose up -d +``` diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml new file mode 100644 index 0000000..1262f0a --- /dev/null +++ b/deploy/docker-compose.yml @@ -0,0 +1,39 @@ +services: + nora: + image: ghcr.io/getnora-io/nora:latest + build: + context: .. + dockerfile: Dockerfile + restart: unless-stopped + volumes: + - nora-data:/data + environment: + - RUST_LOG=info + - NORA_HOST=0.0.0.0 + - NORA_PORT=4000 + - NORA_AUTH_ENABLED=false + networks: + - nora-net + + caddy: + image: caddy:2-alpine + restart: unless-stopped + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + - caddy-data:/data + - caddy-config:/config + networks: + - nora-net + depends_on: + - nora + +volumes: + nora-data: + caddy-data: + caddy-config: + +networks: + nora-net: