====== Install Synchronet on Docker ======


**[[https://hub.docker.com/repository/docker/bbsio/synchronet/general|Synchronet on Docker Hub]]** images are built from [[https://gitlab.synchro.net/main/sbbs|source]] via [[https://github.com/bbs-io/synchronet-docker|bbs-io/synchronet-docker on github]].  Images are build for x86_64 (arm builds are currently broken)

==== Tags ====

  * '':latest'' - The latest stable release version
  * ''#'', ''#.##'', ''#.##x'' - Major, Minor, Patch options
  * '':nightly'' - The latest nightly
  * '':nightly-YYYYMMDD'' - Specific nightly (ex: ''nightly-20220903'')

NOTE: ''latest'', ''3'' and ''3.19'' are build from a nightly (2022-09-03) as build outputs were not working as expected in ''3.19b'' release.


==== Windows Users ====

If you are running Windows, it is recommended that you first install WSL2, then Docker Desktop, configured for WSL2 and doing your volume mounts from inside WSL2 (such as with Ubuntu).  VS Code with WSL Remote extension will make editing much easier to work with.  Note: you can access your WSL2 instances in explorer via `\\wsl$`.  You may want to add your SBBS volume directory to your Quick access shortcuts.


===== First Run =====

For your first run, you may want to run the Synchronet Configuration Program
(scfg) before you proceed to start any services.

    mkdir -p ~/sbbs
    cd ~/sbbs
    docker run --rm -it -v "$PWD:/sbbs-data" bbsio/synchronet:latest scfg

This will create your sbbs storage directory inside your profile, and run the
synchronet configuration program with that directory connected. This container
is setup so that the data directories are initialized on first run of (''scfg'' or
''sbbs'') if necessary.


===== Running =====

The easiest way to get running is with docker-compose.

    mkdir ~/sbbs
    cd ~/sbbs
    wget -O docker-compose.yml https://raw.githubusercontent.com/bbs-io/synchronet-docker/master/docker-compose.yml
    docker-compose up -d
    sudo chmod -R a+rwX ./*

To shutdown:

   docker-compose down

To get a bash prompt inside the running container:

    docker exec -it sbbs bash
    
To run scfg:

    docker exec -it sbbs scfg

===== Editing Content =====

If you are wanting to edit/update files, you may want to run the following on your common shared path, as files are created as root within the container.

    sudo chmod a+rwX /sbbs


===== Volumes =====

In order to better support portability, you should mount your storage directory to ''/sbbs-data/'' inside the running container. Most directories will be populated on first run.

Under your ''/sbbs-data/'' directory, the following directories will be populated.

  * ''backup/defaults/'' - will be initialized with the default build for synchronet on first run, or upgrade.
  * ''ctrl/'' - note: ''text.dat'' will be overwritten on updated versions.
  * ''data/'' - Synchronet's default data storage directory, includes file directories.
  * ''text/''
  * ''web/'' - default populated from ''/backup/defaults/web-ecweb4''
  * ''data/''
  * ''fido/''
  * ''xtrn/'' - external programs, will populate directories that don't exist on first run or update
  * ''mods/'' - your customizations, empty by default
  * ''nodes/node{n}'' - shared nodes directory (mapped to ''/sbbs/node{n}'' internally).


===== Ports =====

Synchronet is preconfigured for the following services/ports, see `/sbbs/ctrl/sbbs.ini` and `/sbbs/ctrl/services.ini` for additional configuration.

  * ''80'' - http
  * ''443'' -  https
  * ''1123'' - ws-term - used for ftelnet virtual terminal web connections
  * ''11235'' - wss-term - used for ftelnet virtual terminal web connections
  * ''21'' -  ftp
  * ''22''-  ssh
  * ''23'' - telnet
  * ''513''-  rlogin
  * ''64'' - petscii 40-column
  * ''128'' - petscii 128-column
  * ''25'' - smtp-mail
  * ''587'' - smtp-submit
  * ''465'' - smtp-submit+tls
  * ''110'' - pop3
  * ''995'' - pop3+tls
  * ''119'' - nntp
  * ''563'' - nntps
  * ''18'' - message send prot
  * ''11'' - active user svc
  * ''17'' - qotd
  * ''79'' - finger
  * ''6667'' - irc

Other services/ports that may be enabled:

  * ''5500'' - hotline
  * ''5501'' - hotline-trans
  * ''24554'' - binkp
  * ''24553'' - binkps
  * ''143'' - imap
  * ''993'' - imap+tls


===== See Also =====
  * [[:install:|install index]]
  * [[howto:docker|How to Setup Docker on Ubuntu]]

{{tag>}}
