fenrir

Fenrir Panel — Docker Installation
Install Docker 
 curl -sSL https://get.docker.com/ | CHANNEL=stable bash
 
 Verify: 
 docker --version
docker compose version
 
 Download Compose Stack 
 mkdir -p /opt/fenrir && cd /opt/fenrir
curl -o docker-compose.yml https://raw.githubusercontent.com/Luxxy-Hosting/Fenrir/main/docker/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/Luxxy-Hosting/Fenrir/main/docker/.env.example
 
 Configure Environment 
 nano .env
 
 POSTGRES_USER=panel
POSTGRES_PASSWORD=CHANGE_ME
POSTGRES_DB=panel
JWT_SECRET=CHANGE_ME
CORS_ORIGIN=https://panel.example.com
NEXT_PUBLIC_API_URL=https://panel.example.com/api
 
 Generate secrets: 
 sed -i "s|CHANGE_ME|$(openssl rand -hex 16)|g" .env
 
 Start the Panel 
 docker compose up -d
 
 Run migrations: 
 docker compose exec backend npx prisma migrate deploy
 
 Reverse Proxy (Nginx) 
 apt install -y nginx certbot python3-certbot-nginx
 
 nano /etc/nginx/sites-available/panel
 
 server {
 listen 80;
 server_name panel.example.com;

 location / {
 proxy_pass http://127.0.0.1:3000;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 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;
 proxy_read_timeout 86400;
 }

 location /api {
 proxy_pass http://127.0.0.1:3001;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 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;
 proxy_read_timeout 86400;
 client_max_body_size 100m;
 }
}
 
 ln -s /etc/nginx/sites-available/panel /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
 
 SSL 
 certbot --nginx -d panel.example.com
 
 Updating 
 cd /opt/fenrir
docker compose pull
docker compose up -d
docker compose exec backend npx prisma migrate deploy
 
 Useful Commands 
 docker compose -f /opt/fenrir/docker-compose.yml logs -f # logs
docker compose -f /opt/fenrir/docker-compose.yml restart # restart
docker compose -f /opt/fenrir/docker-compose.yml down # stop
docker compose -f /opt/fenrir/docker-compose.yml exec postgres psql -U panel # db shell