Systemd Service
Run Cloodsy S3 as a system service with automatic startup and restart.
Create Service File
Create /etc/systemd/system/cloodsys3.service:
[Unit]
Description=Cloodsy S3 Object Storage Server
After=network.target
[Service]
Type=simple
User=cloodsys3
Group=cloodsys3
ExecStart=/usr/local/bin/cloodsys3 serve --data-dir /var/lib/cloodsys3
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
# Security hardening
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/cloodsys3
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Setup
Create a system user
sudo useradd --system --no-create-home --shell /usr/sbin/nologin cloodsys3
Create data directory
sudo mkdir -p /var/lib/cloodsys3
sudo chown cloodsys3:cloodsys3 /var/lib/cloodsys3
Install the binary
sudo cp cloodsys3 /usr/local/bin/
sudo chmod +x /usr/local/bin/cloodsys3
Enable and start
sudo systemctl daemon-reload
sudo systemctl enable cloodsys3
sudo systemctl start cloodsys3
Management Commands
# Check status
sudo systemctl status cloodsys3
# View logs
sudo journalctl -u cloodsys3 -f
# Restart
sudo systemctl restart cloodsys3
# Stop
sudo systemctl stop cloodsys3
Managing Buckets with Systemd
When running as a service, use the CLI with the same data directory:
sudo -u cloodsys3 /usr/local/bin/cloodsys3 bucket create photos --data-dir /var/lib/cloodsys3
sudo -u cloodsys3 /usr/local/bin/cloodsys3 credential create photos --data-dir /var/lib/cloodsys3
The server detects changes automatically — no restart needed.
TLS with Systemd
Update the ExecStart line to include TLS flags:
ExecStart=/usr/local/bin/cloodsys3 serve \
--data-dir /var/lib/cloodsys3 \
--tls-cert /etc/ssl/cloodsys3/cert.pem \
--tls-key /etc/ssl/cloodsys3/key.pem
Add the certificate directory to ReadWritePaths:
ReadWritePaths=/var/lib/cloodsys3 /etc/ssl/cloodsys3