Go! ImageBoard is a minimalistic booru style image board written in Go using a mysql/MariaDB backend with containerization as a primary goal.
These steps will get you up and running immediately
- Copy the executable, http/*, and the dockerfile to your build directory
- cd to your build directory
- Build the image
docker build -t go-image-board .
- Run a new instance of the imageboard
docker run --name myimageboard -p 80:8080 -v /var/docker/myimageboard/images:/var/go-image-board/images -v /var/docker/myimageboard/configuration:/var/go-image-board/configuration -d go-image-board
- Stop the instance and edit the configuration file as needed
- Start instance again
Similiar to the previous steps, the main difference here is that you are supplying your own template files to customize the look of the image board.
- Copy the executable, http/*, and the dockerfile to your build directory
- cd to your build directory
- Build the image
docker build -t go-image-board .
- Create a custom dockerfile that uses go-image-board as it's parent, and add your necessary changes
FROM go-image-board
COPY myhttp "/var/go-image-board/http"
WORKDIR /var/go-image-board
ENTRYPOINT ["/var/go-image-board/gib"]
- Run a new instance of your imageboard
docker run --name myimageboard -p 80:8080 -v /var/docker/myimageboard/images:/var/go-image-board/images -v /var/docker/myimageboard/configuration:/var/go-image-board/configuration -d go-image-board
- Stop the instance and edit the configuration file as needed
- Start instance again
As of 1.0.3.3 Go! ImageBoard supports TLS. I still recommend using an Nginx reverse proxy container for its additional features and letsencrypt support. To enable TLS set UseTLS, TLSCertPath, and TLSKeyPath in your configuration file. Such as {...,"UseTLS":true,"TLSCertPath":".\\configuration\\cert.pem","TLSKeyPath":".\\configuration\\server.key"}
When you run Go! ImageBoard for the first time, the application will generate a new config file for you. This config file is JSON formatted and contains various configuration options. This file must be configured in order for Go! ImageBoard to be usable.
There is also an optional darktheme that can be enabled. To do so, edit /http/headerhtml and add
<link rel="stylesheet" href="/resources/darktheme.css">
under
<link rel="stylesheet" href="/resources/core.css">
User permissions are stored in the database as an unsigned 64 bit integer where each bit represents a single permission flag. Since each bit is a single permission, you can add the permissions you want together to form your effective permissions.
Files located in the "/http/about/" directory are imported into the about.html template and served when requested from http://<yourserver>/about/<filename>.html This can be used to easily write rules, or other documentation for your board while maintaining the same general theme.