synchronet-docker

Containerized Synchronet BBS

  • Owner: bbs-io/synchronet-docker
  • Platform:
  • License:: ISC License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

WORK IN PROGRESS - THIS PACKAGE, AND RELATED IMAGES ARE NOT YET STABLE

Synchronet BBS (Dockerized)

This project is for creating a Synchronet BBS Software setup that will run inside of a docker container, as well as utility scripts for better Dockerization.

This it is based on Debian Jesse (iojs) and will have Node/io.js installed for resource scripts. It is also be configured for dosemu for dos based doors.

Setup

This section will be expanded as I work through setup and configuration. For now, it will be necessary to run bash inside the container instance to run what you want.

install

You should create a directory of sbbs and use that as a volume for your running container. The commands below will create a directory under your current user's profile, then use that as the /sbbs path inside the container.

cd ~/

mkdir sbbs

docker run --name=sbbs -v $(pwd)/sbbs:/sbbs -v $(pwd)/ tracker1/sbbs &

From here, you should connect to a bash prompt in the container to run sbbs-init inside the container, and then you can use scfg -iD.


WARNING For now, this only runs a loop that doesn't do anything, it allows the container to stay running so you can EXEC a bash prompt.

sbbs-bash

In order to connect to a bash prompt in the running container, for the purpose of configuration, or other adjustments, you will want to use the following command. You may want to create an alias in your ~/.bashrc in your host environment.

docker exec -it sbbs bash

The following environment changes are added to the bash prompt.

  • /sbbs-scripts is added to the path
  • /sbbs/exec is added to the path
  • /sbbs-base/exec is added to the path
  • $SBBSCTRL is set to /sbbs/ctrl path

You should run sbbs-init the first time you connect to bash, before running any other commands to ensure the environment is properly configured.

scfg

You should use scfg -iD which will use plain text prompts instead of the interactive UI, which works better inside a container.

Warnings

The container/scripts are not designed to upgrade from versions of synchronet prior to the first version of synchronet-docker on 2015-08-13. Be careful copying configuration from another setup/installation.

The container will build from CVS, Images will be posted to dockerhub as tracker1/synchronet@X.Y.Z Where the X.Y os the major/minor version (ie: 3.6) and Z is the date-time that the build from CVS started at UTC (ie: 201508031225) in yyyyMMddHHmm format.

Why Node?

There are several reasons why I'm writing the scripts for this system in Node/JavaScript:

  • Synchronet uses JavaScript as its' own scripting engine
  • JavaScript is widely known and used
  • I know JS/Node

Technical Details

Build Path

Synchronet itself will be checked out from CVS in /sbbs-src built from CVS to the /sbbs-build directory.

Support Scripts

In order to support containerizing Synchronet, scripts from this project's sbbs-scripts directory will be copied into the image's /sbbs-scripts path.

Init Script

/sbbs-scripts/init will be a catch-all for ensuring Synchronet is configured before executing.

It will do the following:

  • Copy any missing directories from /sbbs-build/* to /sbbs/* excluding /sbbs-build/bin.
    • /sbbs/mods, if missing will be initialized with any Baja and JavaScript scripts.
  • Set $SBBSCTRL to /sbbs/ctrl so that SBBS will execute based on the /sbbs/ path.
  • Run through setup/upgrades based on the installed version, and prior options in the /sbbs path.

Container Configuration

There will be a file generated called /sbbs/sbbs-docker-image.json that will be used as a control file in order to handle current configuration details, as well as version upgrades moving forward.

Dockerization

All of these technical details are so that the /sbbs path itself can be an external volume container, where the image itself will build/run inside the container, but beyond that, the data and configuration can be preserved, as well as providing a means for automated upgrades to newer versions of Synchronet as they present themselves.

Main metrics

Overview
Name With Ownerbbs-io/synchronet-docker
Primary LanguageTypeScript
Program languageShell (Language Count: 3)
Platform
License:ISC License
所有者活动
Created At2015-08-13 18:35:42
Pushed At2025-06-16 15:24:04
Last Commit At2024-01-30 15:18:45
Release Count9
Last Release Namenightly-20250615 (Posted on )
First Release Namerelease-sbbs318b (Posted on )
用户参与
Stargazers Count55
Watchers Count6
Fork Count4
Commits Count111
Has Issues Enabled
Issues Count9
Issue Open Count3
Pull Requests Count6
Pull Requests Open Count1
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private