feat: add caddy config
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
COMPOSE_PROFILES=db,userbot,api
|
||||
RUN_ENVIRONMENT=prod
|
||||
|
||||
# Leave empty for *.localhost.
|
||||
FRONTEND_DEV_HOST=
|
||||
|
||||
DB__HOST=postgres
|
||||
DB__PORT=5432
|
||||
DB__USER=beavergram
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.PHONY: recreate down restart rebuild deploy migrate session-create
|
||||
.PHONY: recreate down restart rebuild deploy migrate session-create frontend
|
||||
|
||||
recreate:
|
||||
docker compose up -d --force-recreate
|
||||
@@ -13,7 +13,11 @@ rebuild:
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
|
||||
frontend:
|
||||
docker compose run --rm --no-deps frontend-dev sh -c "bun install && bun run build"
|
||||
|
||||
deploy:
|
||||
$(MAKE) frontend
|
||||
$(MAKE) rebuild
|
||||
|
||||
migrate:
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
CLOUDFLARE_API_TOKEN=
|
||||
@@ -0,0 +1,2 @@
|
||||
Caddyfile
|
||||
.env
|
||||
@@ -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
|
||||
}
|
||||
@@ -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:
|
||||
@@ -1,12 +1,26 @@
|
||||
services:
|
||||
postgres:
|
||||
ports:
|
||||
- "127.0.0.1:5433:5432"
|
||||
# postgres:
|
||||
# ports:
|
||||
# - "127.0.0.1:5432:5432"
|
||||
|
||||
api:
|
||||
ports:
|
||||
- "127.0.0.1:8080:8080"
|
||||
# ports:
|
||||
# - "127.0.0.1:8080:8080"
|
||||
networks:
|
||||
default: {}
|
||||
caddy:
|
||||
aliases:
|
||||
- beavergram-api
|
||||
|
||||
frontend-dev:
|
||||
ports:
|
||||
- "127.0.0.1:5173:5173"
|
||||
# ports:
|
||||
# - "127.0.0.1:5173:5173"
|
||||
networks:
|
||||
default: { }
|
||||
caddy:
|
||||
aliases:
|
||||
- beavergram-frontend
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
external: true
|
||||
|
||||
@@ -79,6 +79,7 @@ services:
|
||||
command: ["sh", "-c", "bun install && bun run dev --host 0.0.0.0 --port 5173"]
|
||||
environment:
|
||||
API_PROXY_TARGET: http://api:8080
|
||||
ALLOWED_HOSTS: ${FRONTEND_DEV_HOST:-}
|
||||
volumes:
|
||||
- ./frontend:/app
|
||||
- frontend_node_modules:/app/node_modules
|
||||
|
||||
@@ -3,6 +3,9 @@ import tailwindcss from "@tailwindcss/vite";
|
||||
import { defineConfig } from "vite";
|
||||
|
||||
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({
|
||||
plugins: [tailwindcss(), sveltekit()],
|
||||
@@ -14,6 +17,7 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
server: {
|
||||
allowedHosts,
|
||||
proxy: {
|
||||
"/api": { target: proxyTarget, changeOrigin: true },
|
||||
"/mcp": { target: proxyTarget, changeOrigin: true },
|
||||
|
||||
Reference in New Issue
Block a user