porous forum
Go to file
2025-05-26 03:32:54 +03:00
apps allow mods to delete topics 2025-05-25 06:36:31 +03:00
data/static add font and acknowledgements 2025-05-25 21:07:21 +03:00
fonts add font and acknowledgements 2025-05-25 21:07:21 +03:00
js fix reply button not working now 2025-05-26 02:40:09 +03:00
lib fix nested quotes and alter linebreak parsing 2025-05-26 03:32:54 +03:00
sass add font and acknowledgements 2025-05-25 21:07:21 +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 fix nested quotes and alter linebreak parsing 2025-05-26 03:32:54 +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 user signatures 2025-05-24 17:28:07 +03:00
config.lua NOT DONE YET - allow containerization 2025-05-23 04:46:10 +03:00
constants.lua add user signatures 2025-05-24 17:28:07 +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 fix: specify docker compose version 2025-05-25 20:39:12 +02: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 fix nested quotes and alter linebreak parsing 2025-05-26 03:32:54 +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 add font and acknowledgements 2025-05-25 21:07:21 +03:00
porom-dev-1.rockspec argon2 experiment 2025-05-22 22:30:20 +03:00
README.md add font and acknowledgements 2025-05-25 21:07:21 +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
THIRDPARTY.md add font and acknowledgements 2025-05-25 21:07:21 +03:00
util.lua allow users to lock and sticky threads 2025-05-25 06:07:42 +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

make sure to run it in an interactive session the first time, because it will spit out the password to the auto-created admin account.

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

credits & acknowledgements

see THIRDPARTY.md