====== How to Setup Docker on Ubuntu ====== Before starting, if you intend to use YOURNAME.synchro.net, you should go ahead and create an account on [[telnet://vert.synchro.net||Vertrauen]] in order to access DoveNet as well as the synchro.net dynamic dns service. You can also bring your own registered domain, or use any domain (such as YOURNAME.bbs.io) via [[https://freedns.afraid.org|freedns.afraid.org]]. You should create a public/private key pair for SSH before creating your VM, for many providers, this will allow you to have passwordless SSH access. ==== Windows Users ==== Windows Users should [[https://docs.microsoft.com/en-us/windows/wsl/install-win10|Install WSL2]] on a recent version of Windows 10 followed by [[https://www.microsoft.com/en-us/p/ubuntu-2004-lts/9n6svws3rx71?activetab=pivot:overviewtab|Ubuntu 20.04]] in the Windows Store, then install [[Docker Desktop for Windows]]. With the above in place, you can then refer to [[install:docker|Install Synchronet for Docker]] and disregard any Docker or UFW directions below. ===== Installing Ubuntu Server ===== You should start with a fresh install of Ubuntu Server. You should use the latest LTS version (As of today, 20.04). If you want to use a web host, you can use [[https://www.digitalocean.com/|Digital Ocean]], [[https://www.linode.com/|Linode]] or almost any other Linux VPS provider. It is recommended to use a VPS with at least 2GB Ram for Docker usage. When creating your Droplet/VM, specify a host name that matches the name the server will use such as foo.synchro.net or foo.bbs.io. After your VM/VPS is up and running, connect over SSH, edit ///etc/ssh/sshd_config// and set the port to something other than //22// (such as //65022//) so that the default port is available to Synchronet, then restart the server. After you have changed the SSH port, and restarted, connect again over SSH. ssh -p 65022 root@yourserver Now you should install and enable //ufw// (ubuntu's Uncomplicated Firewall). sudo apt-get install ufw ufw allow 65022 ufw enable ===== Installing Docker ===== The instructions in this section are copied from docker.org for x86_64, for other platforms [[https://docs.docker.com/engine/install/ubuntu/|click here]]. If using a VPS with root, you can omit the //sudo// portion of the commands below. sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io Finally, in addition to the instructions on docker.com, install //docker-compose// sudo apt-get install docker-compose ===== Installing Synchronet ===== Now that you have Docker installed and prepared, you can [[install:docker|Install Synchronet for Docker]]. After installing Synchronet, you should enable the ports that Synchronet expects to use. ufw allow 80 ufw allow 443 ufw allow 1123 ufw allow 11235 ufw allow 21 ufw allow 22 ufw allow 23 ufw allow 513 ufw allow 64 ufw allow 128 ufw allow 25 ufw allow 587 ufw allow 465 ufw allow 110 ufw allow 995 ufw allow 119 ufw allow 563 ufw allow 18 ufw allow 11 ufw allow 17 ufw allow 79 ufw allow 6667 ===== Remote Editing ===== In order to make life easier, you may consider installing [[https://code.visualstudio.com/download|Visual Studio Code]] and then install the [[https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack|Remote Development]] extension pack, which will allow for SSH and WSL remote editing. The following contents in //sbbs/.vscode/settings.json// will make using VS Code easier and align well with the files in your //sbbs// directory. { "files.associations": { "*.ssjs": "javascript", }, "[plaintext]": { "files.encoding": "cp437", "editor.renderControlCharacters": true, } } ===== See Also ===== * [[:howto:|howto index]] {{tag>}}