porous forum
Go to file
2025-05-24 15:47:31 +03:00
apps add post editing 2025-05-24 00:11:27 +03:00
data/static add code blocks + copy 2025-05-24 05:12:46 +03:00
js add code blocks + copy 2025-05-24 05:12:46 +03:00
lib better babycode parsing, add horizontal rule 2025-05-24 15:47:31 +03:00
sass add code blocks + copy 2025-05-24 05:12:46 +03:00
secrets NOT DONE YET - allow containerization 2025-05-23 04:46:10 +03:00
svg-icons add topic/thread list view 2025-05-21 17:34:24 +03:00
views add code blocks + copy 2025-05-24 05:12:46 +03:00
.dockerignore add .touched files to ignores 2025-05-23 14:13:37 +03:00
.gitignore add .touched files to ignores 2025-05-23 14:13:37 +03:00
app.lua add post editing 2025-05-24 00:11:27 +03:00
config.lua NOT DONE YET - allow containerization 2025-05-23 04:46:10 +03:00
constants.lua add post editing 2025-05-24 00:11:27 +03:00
create_default_accounts.lua VERY quick fix: randomize seed when making admin account 2025-05-23 05:41:38 +03:00
docker-compose.yml NOT DONE YET - allow containerization 2025-05-23 04:46:10 +03:00
Dockerfile finalize docker setup 2025-05-23 13:14:51 +03:00
LICENSE.md license under CNPLv7+ 2025-05-19 06:23:51 +03:00
migrations.lua prepare post history 2025-05-23 21:29:22 +03:00
mime.types initial commit 2025-05-07 20:01:04 +03:00
models.lua make default avatar use the avatars table 2025-05-22 02:44:24 +03:00
nginx.conf alias js folder to /static/js in ngx config 2025-05-23 20:40:32 +03:00
porom-dev-1.rockspec argon2 experiment 2025-05-22 22:30:20 +03:00
README.md revise instructions 2025-05-23 13:35:54 +03:00
schema.lua schema 2025-05-17 17:12:23 +03:00
start.sh migrate before running server 2025-05-23 21:28:14 +03:00
util.lua add post editing 2025-05-24 00:11:27 +03:00

Porom

porous forum

License

Released under CNPLv7+. Please read the full terms for proper wording.

installing & first time setup

docker

$ docker compose up
  • opens port 8080
  • exposes data/db and data/avatars as volumes for data backup and persistence
  • exposes secrets/ as a volume so that the script won't try to perform first time setup again

manual

  1. install:
    • OpenResty. instructions for linux can be found here
    • LuaJIT and Lua 5.1 (usually called lua5.1 in package managers)
    • openssl (-dev)
    • sqlite (-dev)
    • libsodium (-dev)
    • imagemagick (-dev)
    • LuaRocks (either through the guide's instructions or your package manager, whichever is newer)
  2. add luarocks search dirs to path:
  # in .bashrc (or other shell equivalent)
  eval "$(luarocks --lua-version 5.1 path)"
  1. clone repo
  2. install the lua dependencies:
$ luarocks --local --lua-version 5.1 build --only-deps
  1. run:
$ start.sh production # or 'development' or empty string

the script will perform some necessary first time setup (and create a hidden file in the folder to ensure it won't do so again). it will create an administrator account and print the credentials to the console; this will only happen once. make sure you save them somewhere. the administrator account is the only one that can promote other users to moderator.
(note the production argument. if called with no arguments, start.sh will run in a development environment, which uses a separate database and shows more debug information.)

this app is made with the assumption that it is being reverse-proxied. as such, you may want to change the port to something other than the default 8080. you can do that in config.lua.

after the first time setup is complete, everything is ready to go. put the app behind your reverse proxy and serve it on the web. the app does not run in https by itself, but the reverse proxy can be set up to do that.

once you are able to navigate to the forum, you can log in as the administrator account. other people may also sign up, but they are not able to post until manually verified by an administrator or a moderator. the administrator can promote regular users to moderator.

icons

the icons in the icons/ folder are by Gabriele Malaspina