feat: add caddy config

This commit is contained in:
h
2026-06-02 01:22:58 +02:00
parent 17cd31c41e
commit 3aaa3c757f
9 changed files with 90 additions and 8 deletions
+3
View File
@@ -1,6 +1,9 @@
COMPOSE_PROFILES=db,userbot,api COMPOSE_PROFILES=db,userbot,api
RUN_ENVIRONMENT=prod RUN_ENVIRONMENT=prod
# Leave empty for *.localhost.
FRONTEND_DEV_HOST=
DB__HOST=postgres DB__HOST=postgres
DB__PORT=5432 DB__PORT=5432
DB__USER=beavergram DB__USER=beavergram
+5 -1
View File
@@ -1,4 +1,4 @@
.PHONY: recreate down restart rebuild deploy migrate session-create .PHONY: recreate down restart rebuild deploy migrate session-create frontend
recreate: recreate:
docker compose up -d --force-recreate docker compose up -d --force-recreate
@@ -13,7 +13,11 @@ rebuild:
docker compose build docker compose build
docker compose up -d docker compose up -d
frontend:
docker compose run --rm --no-deps frontend-dev sh -c "bun install && bun run build"
deploy: deploy:
$(MAKE) frontend
$(MAKE) rebuild $(MAKE) rebuild
migrate: migrate:
+1
View File
@@ -0,0 +1 @@
CLOUDFLARE_API_TOKEN=
+2
View File
@@ -0,0 +1,2 @@
Caddyfile
.env
+30
View File
@@ -0,0 +1,30 @@
{
admin off
# acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
log {
format console
}
servers {
trusted_proxies cloudflare
client_ip_headers Cf-Connecting-Ip
}
}
<DOMAIN> {
@backend path /api/* /mcp/*
handle @backend {
reverse_proxy beavergram-api:8080
}
handle {
root * /srv
try_files {path} /index.html
file_server
}
}
dev.<DOMAIN> {
reverse_proxy beavergram-frontend:5173
}
+23
View File
@@ -0,0 +1,23 @@
services:
caddy:
image: ghcr.io/caddybuilds/caddy-cloudflare:latest
restart: unless-stopped
ports:
- "0.0.0.0:80:80"
- "0.0.0.0:443:443"
- "0.0.0.0:443:443/udp"
networks:
- caddy
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ../frontend/build:/srv:ro
- caddy_data:/data
env_file:
- .env
networks:
caddy:
external: true
volumes:
caddy_data:
+21 -7
View File
@@ -1,12 +1,26 @@
services: services:
postgres: # postgres:
ports: # ports:
- "127.0.0.1:5433:5432" # - "127.0.0.1:5432:5432"
api: api:
ports: # ports:
- "127.0.0.1:8080:8080" # - "127.0.0.1:8080:8080"
networks:
default: {}
caddy:
aliases:
- beavergram-api
frontend-dev: frontend-dev:
ports: # ports:
- "127.0.0.1:5173:5173" # - "127.0.0.1:5173:5173"
networks:
default: { }
caddy:
aliases:
- beavergram-frontend
networks:
caddy:
external: true
+1
View File
@@ -79,6 +79,7 @@ services:
command: ["sh", "-c", "bun install && bun run dev --host 0.0.0.0 --port 5173"] command: ["sh", "-c", "bun install && bun run dev --host 0.0.0.0 --port 5173"]
environment: environment:
API_PROXY_TARGET: http://api:8080 API_PROXY_TARGET: http://api:8080
ALLOWED_HOSTS: ${FRONTEND_DEV_HOST:-}
volumes: volumes:
- ./frontend:/app - ./frontend:/app
- frontend_node_modules:/app/node_modules - frontend_node_modules:/app/node_modules
+4
View File
@@ -3,6 +3,9 @@ import tailwindcss from "@tailwindcss/vite";
import { defineConfig } from "vite"; import { defineConfig } from "vite";
const proxyTarget = process.env.API_PROXY_TARGET ?? "http://127.0.0.1:8080"; const proxyTarget = process.env.API_PROXY_TARGET ?? "http://127.0.0.1:8080";
const allowedHosts = process.env.ALLOWED_HOSTS
? process.env.ALLOWED_HOSTS.split(",")
: undefined;
export default defineConfig({ export default defineConfig({
plugins: [tailwindcss(), sveltekit()], plugins: [tailwindcss(), sveltekit()],
@@ -14,6 +17,7 @@ export default defineConfig({
}, },
}, },
server: { server: {
allowedHosts,
proxy: { proxy: {
"/api": { target: proxyTarget, changeOrigin: true }, "/api": { target: proxyTarget, changeOrigin: true },
"/mcp": { target: proxyTarget, changeOrigin: true }, "/mcp": { target: proxyTarget, changeOrigin: true },