Description
Preface
I'm just trying to get loops on a Debian 13 LXC container to run and follow this: https://github.com/joinloops/loops-server/blob/main/INSTALLATION.md
It has also worked a lot and I get as far as the website is delivered as desired.
But if I try to upload a video, I get a 500 error.
Unfortunately, I cannot find any helpful error messages from the logs.
Steps to reproduce
Installation
apt update
dpkg-reconfigure locales
apt install \
htop tmux vim bash-completion sudo curl lnav \
nginx ssl-cert \
php php-bcmath php-json php-mbstring php-tokenizer php-xml php-gd \
php-imagick php-exif php-mysql php-redis php-memcached php-fpm composer \
mariadb-server redis memcached \
ffmpeg libavcodec-extra \
nodejs npm supervisor
mysql --exec="CREATE DATABASE loops CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql --exec="CREATE USER 'loops_user'@'localhost' IDENTIFIED BY 'your_secure_password';"
mysql --exec="GRANT ALL PRIVILEGES ON loops.* TO 'loops_user'@'localhost';"
mysql --exec="FLUSH PRIVILEGES;"
cd /opt/
git clone https://github.com/joinloops/loops-server.git
chown -R www-data: ./loops-server
cd loops-server
sudo --user=www-data composer install --no-dev --optimize-autoloader
sudo --user=www-data npm install
sudo --user=www-data npm run build
sudo --user=www-data cp .env.example .env
sudo --user=www-data vim .env
sudo --user=www-data php artisan key:generate
sudo --user=www-data php artisan storage:link
sudo --user=www-data php artisan migrate
sudo --user=www-data php artisan create-admin-account
sudo --user=www-data php artisan passport:keys
sudo --user=www-data php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
chmod -R 755 /opt/loops-server
chmod -R 775 /opt/loops-server/storage
chmod -R 775 /opt/loops-server/bootstrap/cache
vim /etc/crontab
vim /etc/php/8.4/fpm/php.ini
vim /etc/php/8.4/fpm/pool.d/www.conf
vim /etc/supervisor/conf.d/loops-horizon.conf
supervisorctl reread
vim /etc/nginx/sites-enabled/default
nginx -t && systemctl restart nginx.service php8.4-fpm.service
.env
APP_NAME=Loops
APP_ENV=production
APP_KEY=base64:…
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=https://loops.proxmox-02.anoxinon.de
APP_LOCALE=de
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=de_DE
APP_MAINTENANCE_DRIVER=file
PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12
LOG_CHANNEL=daily
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=loops
DB_USERNAME=loops_user
DB_PASSWORD=…
SESSION_DRIVER=database
SESSION_LIFETIME=86400
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
SESSION_SECURE_COOKIE=true
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=redis
CACHE_DRIVER=redis
CACHE_STORE=database
CACHE_PREFIX=
HORIZON_PREFIX=horizon_
MEMCACHED_HOST=127.0.0.1
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mail.anoxinon.de
MAIL_PORT=587
MAIL_USERNAME=…
MAIL_PASSWORD=…
MAIL_ENCRYPTION=tls
MAIL_AUTO_TLS=true # STARTTLS (false to bypass)
MAIL_FROM_ADDRESS="…"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_ENDPOINT=
AWS_USE_PATH_STYLE_ENDPOINT=false
AWS_URL=
# Video Processing
FFMPEG_BINARIES=/bin/ffmpeg
FFPROBE_BINARIES=/bin/ffprobe
# Loops Settings
LOOPS_ADMIN_DASHBOARD_AUTOUPDATE=true
LOOPS_REG_MIN_YEARS_OLD=16
# API Rate Limits
LOOPS_API_RATE_LIMITS_ENABLED=true
LOOPS_API_RATE_LIMITS_GUEST_PER_MIN=60
LOOPS_API_RATE_LIMITS_GUEST_PER_HOUR=700
LOOPS_API_RATE_LIMITS_USER_PER_MIN=120
LOOPS_API_RATE_LIMITS_USER_PER_HOUR=3000
VITE_APP_NAME="${APP_NAME}"
VITE_APP_URL="${APP_URL}"
Versionen
- PHP 8.4.21 (cli) (built: May 8 2026 05:56:48) (NTS)
- nodejs: v20.19.2
- npm: 9.2.0
- Redis server v=8.0.2 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=b52b02bf0759f5b4
- mariadb from 11.8.6-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using EditLine wrapper
- ffmpeg version 7.1.4-0+deb13u1 Copyright (c) 2000-2026 the FFmpeg developers
- Composer version 2.8.8 2025-04-04 16:56:46
- supervisord: 4.2.5
- memcached 1.6.38
- nginx version: nginx/1.26.3
nginx config
/etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
include snippets/snakeoil.conf;
root /opt/loops-server/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
# Handle large video uploads
client_max_body_size 100M;
client_body_buffer_size 128k;
client_body_in_file_only clean;
client_body_temp_path /var/lib/nginx/body;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
# Ergänzen Sie diese 4 Zeilen für große Uploads:
fastcgi_read_timeout 600;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_request_buffering off;
# Ergänzen Sie diese Puffer-Werte:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
}
Analyse
tail --lines=0 --follow \
/var/log/php8.4-fpm.log \
/var/log/nginx/error.log \
/var/log/nginx/access.log \
/opt/loops-server/storage/logs/laravel-2026-05-22.log
==> /var/log/php8.4-fpm.log <==
==> /var/log/nginx/error.log <==
==> /var/log/nginx/access.log <==
==> /opt/loops-server/storage/logs/laravel-2026-05-22.log <==
==> /var/log/nginx/access.log <==
2a0a:…:2f41 - - [22/May/2026:20:42:25 +0000] "POST /api/v1/studio/upload HTTP/1.1" 500 111 "https://loops.proxmox-02.anoxinon.de/studio/upload" "Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0"
Results
I also tried to find what with journald and php error logs, but unfortunately until now, no single error message found that will help me here.
Loops version
main
Acknowledgements
Yes
Description
Preface
I'm just trying to get
loopson a Debian 13 LXC container to run and follow this: https://github.com/joinloops/loops-server/blob/main/INSTALLATION.mdIt has also worked a lot and I get as far as the website is delivered as desired.
But if I try to upload a video, I get a 500 error.
Unfortunately, I cannot find any helpful error messages from the logs.
Steps to reproduce
Installation
.env
Versionen
nginx config
/etc/nginx/sites-enabled/default
Analyse
Results
I also tried to find what with
journaldand php error logs, but unfortunately until now, no single error message found that will help me here.Loops version
main
Acknowledgements
Yes