initial commit

This commit is contained in:
Pierre
2026-01-11 17:26:49 +01:00
commit 888790fd11
240 changed files with 48691 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
# Upstream servers
upstream api {
server 127.0.0.1:3000;
}
upstream rclone {
server 127.0.0.1:5572;
}
server {
listen 80;
server_name _;
# Static files (UI)
root /app/ui;
index index.html;
# SPA routing - serve index.html for any non-file request
location / {
try_files $uri $uri/ /index.html;
}
# Editor UI - SPA with base path /editor/
location /editor/ {
alias /app/editor/;
index index.html;
try_files $uri $uri/ /editor/index.html;
}
# Redirect /editor to /editor/
location = /editor {
return 301 /editor/;
}
# API routes
location /api/ {
proxy_pass http://api;
proxy_http_version 1.1;
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;
}
# Health check (direct to API)
location /health {
proxy_pass http://api/health;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
# rclone web UI
location /rclone/ {
proxy_pass http://rclone/;
proxy_http_version 1.1;
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 Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Basic auth for rclone
auth_basic "rclone";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
}
+30
View File
@@ -0,0 +1,30 @@
# Redis configuration for meta-sort
# Optimized for metadata storage
# Basic settings
bind 0.0.0.0
port 6379
protected-mode no
daemonize no
# Persistence
appendonly yes
appendfsync everysec
dir /data/redis
# Memory management
maxmemory 256mb
maxmemory-policy allkeys-lru
# Logging
loglevel notice
logfile ""
# Performance
tcp-keepalive 300
timeout 0
# Disable dangerous commands in production
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
+69
View File
@@ -0,0 +1,69 @@
[supervisord]
nodaemon=true
user=root
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
loglevel=info
[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700
[rpcinterface:supervisor]
supervisor.rpc_interface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[program:meta-core]
command=/usr/local/bin/meta-core
priority=5
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
startsecs=3
environment=
META_CORE_PATH="/meta-core",
FILES_PATH="/files",
SERVICE_NAME="meta-sort",
SERVICE_VERSION="1.0.0",
META_CORE_HTTP_PORT="9000",
REDIS_PORT="6379"
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
priority=20
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/nginx.log
stderr_logfile=/var/log/supervisor/nginx_error.log
startsecs=2
[program:rclone]
command=/usr/bin/rclone rcd --rc-web-gui --rc-web-gui-no-open-browser --rc-addr=:5572 --rc-user=admin --rc-pass=admin
priority=30
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/rclone.log
stderr_logfile=/var/log/supervisor/rclone_error.log
startsecs=3
[program:meta-sort]
command=/usr/bin/node /app/backend/dist/index.js
directory=/app/backend
priority=40
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
startsecs=5
environment=
REDIS_URL="redis://127.0.0.1:6379",
REDIS_PREFIX="",
API_HOST="0.0.0.0",
API_PORT="3000"