91 lines
2 KiB
Django/Jinja
91 lines
2 KiB
Django/Jinja
# Alliance Boréale - Forgejo Systemd Service
|
|
# Generated by Ansible
|
|
|
|
[Unit]
|
|
Description=Forgejo Git Service
|
|
After=network.target postgresql.service
|
|
Wants=postgresql.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User={{ forgejo.user }}
|
|
Group={{ forgejo.group }}
|
|
WorkingDirectory={{ forgejo.data_dir }}
|
|
ExecStart={{ forgejo.install_dir }}/forgejo web --config {{ forgejo.custom_dir }}/app.ini
|
|
Restart=on-failure
|
|
RestartSec=10
|
|
|
|
# Security
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths={{ forgejo.data_dir }} {{ forgejo.log_dir }}
|
|
|
|
# Limits
|
|
LimitNOFILE=65536
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
---SEPARATOR---
|
|
|
|
# Alliance Boréale - Nginx Configuration for Forgejo
|
|
# Generated by Ansible
|
|
|
|
upstream forgejo_backend {
|
|
server 127.0.0.1:{{ forgejo.http_port }};
|
|
}
|
|
|
|
server {
|
|
listen 80;
|
|
server_name {{ forgejo.hostname }};
|
|
return 301 https://$server_name$request_uri;
|
|
}
|
|
|
|
server {
|
|
listen 443 ssl http2;
|
|
server_name {{ forgejo.hostname }};
|
|
|
|
ssl_certificate /etc/ssl/certs/{{ forgejo.hostname }}.crt;
|
|
ssl_certificate_key /etc/ssl/private/{{ forgejo.hostname }}.key;
|
|
ssl_protocols TLSv1.2 TLSv1.3;
|
|
ssl_ciphers HIGH:!aNULL:!MD5;
|
|
|
|
# Large uploads (Git LFS)
|
|
client_max_body_size 512M;
|
|
|
|
location / {
|
|
proxy_pass http://forgejo_backend;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
# WebSocket support (for Actions)
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
}
|
|
}
|
|
|
|
---SEPARATOR---
|
|
|
|
# Alliance Boréale - Forgejo Handlers
|
|
# Date: 2025-10-31
|
|
|
|
---
|
|
- name: restart forgejo
|
|
ansible.builtin.systemd:
|
|
name: forgejo
|
|
state: restarted
|
|
|
|
- name: reload nginx
|
|
ansible.builtin.systemd:
|
|
name: nginx
|
|
state: reloaded
|
|
|
|
- name: reload nftables
|
|
ansible.builtin.systemd:
|
|
name: nftables
|
|
state: reloaded
|