vpub-plus
vpub-plus copied to clipboard
Fork of vpub, the forum software
vpub-plus
Simple message board software and also a fork.
Examples

Installation
To host it and install it you have to have:
- Golang
- Postgresql
- Git
- Make
- Systemd (optional)
Compiling vpub-plus from the source
Here is how to build vpub:
-
git clone https://github.com/hugmouse/vpub-plus.git
-
cd vpub-plus
-
make
You should now have vpub
in ./bin/
!
Creating a vpub
user
For isolation purposes, we can create a user that is going to run a vpub
instance
-
useradd vpub
Make sure that vpub
group exists too! And if it does not, then:
-
groupadd vpub
Database setup
Make sure that you have postgresql installed!
- Create a new database:
createdb vpub
(or create it frompsql
)
Set up environment variables
Now you have to set those environment variables:
-
DATABASE_URL
- Postgresql connection URL -
SESSION_KEY
- 32 bytes long session key -
CSRF_KEY
- 32 bytes longs CSRF key -
CSRF_SECURE
- Makes CSRF cookies secure (true
/false
) -
PORT
- What port is going to be used by avpub
HTTP server
You can check the example configuration in systemd config!
At this point you can run vpub
just fine, other steps are optional ones
Systemd config (optional)
Create a /etc/systemd/system/vpub.service
file and add this example config to there:
[Install]
WantedBy=multi-user.target
[Unit]
Description="Message board"
Documentation="https://github.com/hugmouse/vpub-plus"
[Service]
ExecStart=/usr/local/bin/vpub
User=vpub
Group=vpub
Environment=DATABASE_URL=postgres://[email protected]/vpub?sslmode=disable
# Default port 8080
Environment=PORT=1337
# Those keys should be 32 bytes long
Environment=SESSION_KEY=CHANGE ME
Environment=CSRF_KEY=CHANGE ME
# If you are going to use HTTPS, then use secure cookies
Environment=CSRF_SECURE=true
After that you just can run it like any other systemd service: systemctl enable --now vpub
If something goes wrong, you can use journalctl -eu vpub
to troubleshoot this service
Where to go next
At this point a vpub
service should be running on a 1337 port without HTTPS.
- You can add a reverse proxy, like
NGINX
, to handle a secure connection - You can install a
certbot
that is going to create a let's encrypt cert for your domain
Credentials
On the first run vpub
will create an admin user with the password "admin".
Log in and change it by navigating to /admin/users
route.
Registering new users
To register you have to have a unique key! Create one on /admin/keys
page and use it to create a new user account.
Atom feed
You need to change the URL
in settings to pass the atom feed check.
Specify your domain name in /admin/settings/edit
like this: https://example.com/
.