This commit is contained in:
2025-03-18 07:43:46 +08:00
commit d2e93a2736
26 changed files with 918 additions and 0 deletions

18
deploy/docker/Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o firewall
FROM debian:bullseye
RUN apt-get update && apt-get install -y sqlite3
COPY --from=builder /app/firewall /usr/local/bin/
COPY scripts/init_admin.sh .
RUN sqlite3 /var/lib/firewall.db < scripts/init_db.sql && \
chmod +x init_admin.sh && \
./init_admin.sh && \
rm init_admin.sh
CMD ["firewall"]

View File

@@ -0,0 +1,14 @@
server {
listen 80;
server_name firewall.example.com;
location /api {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
root /var/www/firewall-frontend;
try_files $uri $uri/ /index.html;
}
}

View File

@@ -0,0 +1,12 @@
[Unit]
Description=Firewall Frontend Service
After=network.target
[Service]
WorkingDirectory=/opt/firewall/frontend
ExecStart=/usr/bin/npm run preview -- --port 3000 --host 0.0.0.0
Restart=always
User=www-data
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,13 @@
[Unit]
Description=Firewall Management Service
After=network.target
[Service]
EnvironmentFile=/opt/firewall/config/.env
WorkingDirectory=/opt/firewall/backend
ExecStart=/usr/local/bin/firewall
Restart=always
User=firewall-user
[Install]
WantedBy=multi-user.target