Installation
Linux (Debian)
A signed Debian repository is available and can be used with Debian 12 and Debian derivatives (e.g., Ubuntu).
Run the following commands (as root) to add the repository to your system:
mkdir -p -m0755 /etc/apt/keyrings
curl https://download.koromix.dev/debian/koromix-archive-keyring.gpg -o /etc/apt/keyrings/koromix-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/koromix-archive-keyring.gpg] https://download.koromix.dev/debian stable main" > /etc/apt/sources.list.d/koromix.dev-stable.list
Once this is done, refresh the package cache and install Goupile:
apt update
apt install goupile
For other distributions, you can compile the code as indicated below.
Linux (RPM)
A signed RPM repository is available and can be used with RHEL, Fedora, and Rocky Linux (9+).
Run the following commands (as root) to add the repository to your system:
curl https://download.koromix.dev/rpm/koromix-repo.asc -o /etc/pki/rpm-gpg/koromix-repo.asc
echo "[koromix]
name=koromix repository
baseurl=https://download.koromix.dev/rpm
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/koromix-repo.asc" > /etc/yum.repos.d/koromix.repo
Once this is done, install the package with this command:
dnf install goupile
For other distributions, you can compile the code as indicated below.
Domains
Creating a Domain
To create a new domain, run the following command:
/usr/lib/goupile/manage.py create <name> [-p <HTTP port>]
Remember to securely store the decryption key provided to you when the domain is created!
Deleting a Domain
Delete the corresponding INI file in /etc/goupile/domains.d
and stop the service:
rm /etc/goupile/domains.d/<name>.ini
/usr/lib/goupile/manage.py sync
Maintenance
Updates
You should configure your server for automatic updates. On Debian, use something like this:
apt install unattended-upgrades
dpkg-reconfigure -pmedium unattended-upgrades
Backups
Goupile data is stored in the /var/lib/goupile
directory. You should regularly back up this folder.
Reverse Proxy
NGINX
Edit your NGINX configuration (directly or in a server file in /etc/nginx/sites-available
) to set it up as a reverse proxy for Goupile.
The server block should look something like this:
server {
# ...
location / {
proxy_http_version 1.1;
proxy_buffering on;
proxy_read_timeout 180;
send_timeout 180;
client_max_body_size 256M;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8888/;
}
}
Apache 2
Edit your Apache 2 configuration (directly or in a server file in /etc/apache2/sites-available
) to set it up as a reverse proxy for Goupile.
The VirtualHost block should look something like this:
<VirtualHost *:443>
# ...
LimitRequestBody 268435456
ProxyPreserveHost On
ProxyPass "/" "http://127.0.0.1:8888/"
ProxyPassReverse "/" "http://127.0.0.1:8888/"
</VirtualHost>