Merge branch 'master' of github.com:NuSkooler/enigma-bbs

This commit is contained in:
Bryan Ashby 2021-04-21 15:15:49 -06:00
commit 968b8e0922
No known key found for this signature in database
GPG Key ID: B49EB437951D2542
4 changed files with 117 additions and 10 deletions

35
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,35 @@
name: Docker
on:
push:
branches: [ master ]
workflow_dispatch:
jobs:
buildx:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
tags: enigmabbs/enigma-bbs:latest
file: docker/Dockerfile
platforms: linux/amd64,linux/arm64
push: true

45
docker/Dockerfile Normal file
View File

@ -0,0 +1,45 @@
FROM node:lts-buster-slim
LABEL maintainer="dave@force9.org"
ENV NVM_DIR /root/.nvm
ENV DEBIAN_FRONTEND noninteractive
COPY . /enigma-bbs
# Do some installing!
RUN apt-get update && apt-get install -y \
git \
curl \
build-essential \
python \
libssl-dev \
lrzsz \
arj \
lhasa \
unrar-free \
p7zip-full \
&& npm install -g pm2 \
&& cd /enigma-bbs && npm install --only=production \
&& apt-get remove build-essential python libssl-dev git curl -y && apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& apt-get clean
# sexyz
COPY docker/bin/sexyz /usr/local/bin
# enigma storage mounts
VOLUME /enigma-bbs/art
VOLUME /enigma-bbs/config
VOLUME /enigma-bbs/db
VOLUME /enigma-bbs/filebase
VOLUME /enigma-bbs/logs
VOLUME /enigma-bbs/mods
VOLUME /mail
# Enigma default port
EXPOSE 8888
WORKDIR /enigma-bbs
CMD ["pm2-runtime", "main.js"]

BIN
docker/bin/sexyz Executable file

Binary file not shown.

View File

@ -3,20 +3,47 @@ layout: page
title: Docker title: Docker
--- ---
**You'll need Docker installed before going any further. How to do so are out of scope of these docs, but you can find full instructions **You'll need Docker installed before going any further. How to do so are out of scope of these docs, but you can find full instructions
for every operating system on the [Docker website](https://docs.docker.com/engine/installation/).** for every operating system on the [Docker website](https://docs.docker.com/engine/install/).**
## Quick Start ## Quick Start
Download and run the ENiGMA½ BBS image:
docker run -d \ - Generate some config for your BBS:
-p 8888:8888 \ ```
davestephens/enigma-bbs:latest docker run -it -v "${HOME}/engima-bbs/config:/enigma-bbs/config" enigmabbs/enigma-bbs:latest oputil.js config new
```
:warning: This is a **very basic** example! As no config has been supplied the container will use a basic one so that it starts successfully. Note that as no persistence directory has been supplied, once the container stops any changes made will be lost! - Run it:
```
docker run -p 8888:8888 -v "${HOME}/engima-bbs/config:/enigma-bbs/config enigmabbs/enigma-bbs:latest
```
:bulb: [Volumes](https://docs.docker.com/storage/volumes/) may be used for things such as your configuration and database path. :bulb: Configuration will be stored in `${HOME}/engima-bbs/config`.
## Customized Docker Setup :bulb: Windows users - you'll need to switch out `${HOME}/engima-bbs/config` for a Windows-style path.
TBC using Docker Compose
:pencil: This area is looking for contributors! ## Volumes
Containers by their nature are ephermeral. Meaning, stuff you want to keep (config, database, mail) needs
to be stored outside of the running container. As such, the following volumes are mountable:
| Volume | Usage |
|:------------------------|:---------------------------------------------------------------------|
| /enigma-bbs/art | Art, themes, etc |
| /enigma-bbs/config | Config such as config.hjson, menu.hjson, prompt.hjson, SSL certs etc |
| /enigma-bbs/db | ENiGMA databases |
| /enigma-bbs/filebase | Filebase |
| /enigma-bbs/logs | Logs |
| /enigma-bbs/mods | ENiGMA mods |
| /mail | FTN mail (for use with an external mailer) |
## Building your own image
Customising the Docker image is easy!
1. Clone the ENiGMA-BBS source.
2. Build the image
```
docker build -f ./docker/Dockerfile .
```