bbs-io / synchronet-docker Goto Github PK
View Code? Open in Web Editor NEWContainerized Synchronet BBS
License: ISC License
Containerized Synchronet BBS
License: ISC License
The build scripts seem to be having trouble detecting version changes upstream.
Need to investigate and update. I may also convert these to use Deno as well.
Look into extending support to include DOSEMU.
Thanks to this Reddit comment
reference...
FROM bbsio/synchronet:latest
ARG DOSEMU_DEB_URL=http://ftp.us.debian.org/debian/pool/contrib/d/dosemu/dosemu_1.4.0.7+20130105+b028d3f-2+b1_amd64.deb
ARG DOSEMU_DEB=dosemu_1.4.0.7+20130105+b028d3f-2+b1_amd64.deb
RUN apt-get update \
&& apt-get install -y rsh-redone-client locales locales-all \
mtools dosfstools dos2unix ser2net socat
ENV USER=root LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8
# HACK: Install dosemu from .deb URL and allow for initial failure of install before dependencies
RUN wget -nc $DOSEMU_DEB_URL \
&& /usr/bin/dpkg -i $DOSEMU_DEB \
|| /usr/bin/apt-get -f install -y \
&& /usr/bin/dpkg -i $DOSEMU_DEB \
&& rm $DOSEMU_DEB
RUN mkdir -p /media/CDROM
ARG SBBS_SRC=./sbbs
COPY $SBBS_SRC/install/terminfo $SBBS_SRC/install/termcap ./
RUN /usr/bin/tic terminfo \
&& cat termcap >> /etc/termcap \
&& rm terminfo termcap
RUN apt-get install -y tmux
COPY ./start.sh ./
CMD ["./start.sh"]
The synchronet web service on port 80 is looking for /sbbs/webv4
, but only /sbbs/web
exists. If you link from webv4 -> web
, you get a 500 error instead.
Need to be able to handle the .ini
files in sbbs/exec
/sbbs/exec/*.ini
to /sbbs/dist/exec/
at end of build process/sbbs/dist/exec/*.ini
to /sbbs-data/exec/
if not already present./sbbs-data/exec/*.ini
to /sbbs/exec/
Hi!
Spinning up the container works fine (BBS fully operational, including Telnet on port 23).
However, whenever SBBS initiates its recycling process, the telnet daemon gets confused. See the logs below for details. Telnet never recovers. Restarting the Docker container resumes normal operation (Telnet binding works correctly).
2/5 15:31:36 term Recycle semaphore file (/sbbs/ctrl/recycle) detected
2/5 15:31:36 term Waiting for events thread to terminate...
2/5 15:31:36 evnt BBS Events BBS Events thread terminated
2/5 15:31:36 term Done waiting for events thread to terminate
2/5 15:31:36 term Terminal Server thread terminating
2/5 15:31:36 term 0005 Telnet Server closing socket 0.0.0.0 port 23
2/5 15:31:36 term 0011 RLogin Server closing socket 0.0.0.0 port 513
2/5 15:31:36 term 0007 SSH Server closing socket 0.0.0.0 port 22
2/5 15:31:36 term 0028 Spy Socket closing socket localspy1.sock port 0
2/5 15:31:36 term 0029 Spy Socket closing socket localspy2.sock port 0
2/5 15:31:36 term 0030 Spy Socket closing socket localspy3.sock port 0
2/5 15:31:36 term 0031 Spy Socket closing socket localspy4.sock port 0
2/5 15:31:36 term Recycling server...
Reading /sbbs/ctrl/sbbs.ini
2/5 15:31:38 term Synchronet Terminal Server Version 3.19b
2/5 15:31:38 term Compiled HEAD/6b10fdc Jan 3 2022 15:30:51 with GCC 6.3.0
2/5 15:31:38 term Initializing on Sat Feb 5 15:31:38 2022 with options: 1022
2/5 15:31:38 term Loading configuration files from /sbbs/ctrl
2/5 15:31:38 term Verifying/creating data directories
2/5 15:31:38 term Verifying/creating node directories
2/5 15:31:38 term Telnet Server listening on socket 0.0.0.0 port 23
2/5 15:31:38 term 0005 !ERROR 98 binding Telnet Server socket to port 23: Address already in use
2/5 15:31:38 term 0005 Will retry in 15 seconds (1 of 2)
2/5 15:31:53 term 0005 !ERROR 98 binding Telnet Server socket to port 23: Address already in use
2/5 15:31:53 term 0005 Will retry in 15 seconds (2 of 2)
2/5 15:32:08 term 0005 !ERROR 98 binding Telnet Server socket to port 23: Address already in use
I'm considering making a breaking change... deferring to a single /sbbs-files
volume mount...
Every directory under that directory excluding exec/
would then be symbolically linked under /sbbs
before upgrade as part of init. The rest of initialization would work the same, but make configuration a bit simpler at the expense of making init slightly more complex... could keep supporting the separate mounts, if those directories are already present at initialization.
Thoughts?
I'm considering re-writing the initialization scripts from node to deno... it would simplify the structure, remove the need for node_modules, package.json etc and should simplify things slightly..
Would still keep node and deno inside the final image, just favor deno for orchestration scripts/init.
Hello. I'm trying to use this but it keeps terminating and I have no idea why. I'm running on Unraid. I was able to get a different bbs software (enigma-bbs) container running fine via docker, but this one just keeps stopping. It doesn't say why but it runs and a few seconds later it stops.
docker run --rm -it --network bridge -p 7239:23 --name "synchronet" -v "/mnt/user/appdata/sbbs:/sbbs-data" bbsio/synchronet:latest
Downloading and extraction x00 1.53a
--2022-05-08 18:26:16-- https://s1.bbs.land/bbs-io/downloads/fossil_drivers/x00153a.zip
Resolving s1.bbs.land (s1.bbs.land)... 205.185.216.10, 205.185.216.42
Connecting to s1.bbs.land (s1.bbs.land)|205.185.216.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 108621 (106K) [application/x-zip-compressed]
Saving to: 'x00153a.zip'
x00153a.zip 100%[===================================================>] 106.08K --.-KB/s in 0.03s
2022-05-08 18:26:16 (3.42 MB/s) - 'x00153a.zip' saved [108621/108621]
Synchronet Console for Linux-x64 Version 3.19b Copyright 2022 Rob Swindell
Reading /sbbs/ctrl/sbbs.ini
Loading configuration files from /sbbs/ctrl
5/8 18:26:16 term Synchronet Terminal Server Version 3.19b
5/8 18:26:16 term Compiled HEAD/6b10fdc Jan 3 2022 15:30:51 with GCC 6.3.0
5/8 18:26:16 stat Loading configuration files from /sbbs/ctrl
5/8 18:26:16 term Initializing on Sun May 8 18:26:16 2022 with options: 1022
5/8 18:26:16 ftp Synchronet FTP Server Version 3.19b
5/8 18:26:16 ftp Compiled HEAD/6b10fdc Jan 3 2022 15:31:17 with GCC 6.3.0
WARNING: No user account specified, running as root!
5/8 18:26:16 mail Synchronet Mail Server Version 3.19b
5/8 18:26:16 term Loading configuration files from /sbbs/ctrl
5/8 18:26:16 ftp Initializing on Sun May 8 18:26:16 2022 with options: 14
5/8 18:26:16 mail Compiled HEAD/6b10fdc Jan 3 2022 15:31:22 with GCC 6.3.0
5/8 18:26:16 srvc Synchronet Services Version 3.19b
5/8 18:26:16 ftp Loading configuration files from /sbbs/ctrl
5/8 18:26:16 mail Initializing on Sun May 8 18:26:16 2022 with options: 60000404
5/8 18:26:16 web Synchronet Web Server Version 3.19b
5/8 18:26:16 mail Loading configuration files from /sbbs/ctrl
5/8 18:26:16 srvc Compiled HEAD/6b10fdc Jan 3 2022 15:31:28 with GCC 6.3.0
5/8 18:26:16 web Compiled HEAD/6b10fdc Jan 3 2022 15:31:32 with GCC 6.3.0
5/8 18:26:16 srvc Initializing on Sun May 8 18:26:16 2022 with options: 800
5/8 18:26:16 web Initializing on Sun May 8 18:26:16 2022 with options: 8a0
5/8 18:26:16 srvc Loading configuration files from /sbbs/ctrl
5/8 18:26:16 web Loading configuration files from /sbbs/ctrl
5/8 18:26:16 stat Listening on /sbbs/ctrl/status.sock
5/8 18:26:16 term Verifying/creating data directories
5/8 18:26:16 ftp FTP Server listening on socket 0.0.0.0 port 21
[Threads: 8 Sockets: 1 Clients: 0 Served: 0 Errors: 0] (?=Help):
And then after that last line prints, it stops running about 5 seconds later.
My sbbs mounted folder is empty.
Any ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.