This guide describes installation steps in detail if you want to run your own site.
Example setting up a fresh new VPS with Ubuntu 20.04.
Update packages list and upgrade system at first.
apt update
apt upgrade -yInstall the necessary packages.
apt install -y net-tools nginx gitCodeX Media is build to run in Docker so you need to have it installed.
apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
apt install -y docker-ceFor containers composing we use docker-compose utility. Install it too.
Find current stable version: https://github.com/docker/compose/releases and replace VERSION word in the following command.
VERSION=1.26.2
curl -L https://github.com/docker/compose/releases/download/$VERSION/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-composeBuilding public files requests at least 1 GB RAM (2 GB of course will be better).
If your VPS has not enough memory then create a swap partition.
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap defaults 0 0" > /etc/fstabYou can find any other guide for a swap partition creating.
Check result vie free command. For example we have 500 MB RAM and 2 GB swap:
root@stormy-zimba:~# free
total used free shared buff/cache available
Mem: 489444 222836 16384 396 250224 252020
Swap: 2097148 1434156 662992Clone repository
cd /var/www
git clone https://github.com/codex-team/codex.mediaInitialize project
cd codex.media
./bin/init.shFor the setting up the rest config files read deployment guide.
Here is a sample nginx config tools/nginx.conf for proxying requests to docker:
server {
listen 80;
#server_name codex-media.com;
client_max_body_size 50M;
error_log /var/log/nginx/codex-media_error.log;
access_log /var/log/nginx/codex-media_access.log;
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8880/;
}
}
For a fresh VPS you can use the following command to copy and use config file.
rm /etc/nginx/sites-enabled/default
cp tools/nginx.conf /etc/nginx/sites-available/codex-media.conf
ln -s /etc/nginx/sites-available/codex-media.conf /etc/nginx/sites-enabled/codex-media.confEdit the config file and change server_name to your domain.
nano /etc/nginx/sites-enabled/codex-media.confReload nginx to apply changes
service nginx reloadNow you can open your site and see the main page.
After setting up the site name you may need to set up a HTTPS connection.
At all you may use Certbot.
Installation
curl -o- https://raw.githubusercontent.com/vinyll/certbot-install/master/install.sh | bashThen run certbot
certbot --nginxEdit the crontab
crontab -eAnd enter a task
0 5 */10 * * certbot renew --post-hook "systemctl reload nginx"