A forum for the NomadNet
  • mupad 57%
  • Python 34.3%
  • Shell 8.7%
Find a file
2026-05-07 17:08:32 +02:00
admin add link_id verfication for changing the forum info 2026-04-15 13:25:21 +02:00
test BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
.gitignore BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
comment.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
config.py config.py: create default config file if run (does not overwrite existing file) 2026-04-15 13:31:32 +02:00
delete_account.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
delete_content.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
index.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
LICENSE Create LICENSE 2023-09-15 19:47:22 +00:00
list.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
login.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
logout.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
main.py BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
notify.py BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
post.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
profile.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
README.md add rngit link to README 2026-05-07 17:08:32 +02:00
register.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
requirements.txt use sessions instead of storing link_id in users 2025-08-04 14:19:07 +02:00
rules.mu new editor, new tools, especially better autoformatting; also some small bugfixes and stuff that has been laying around for some time now 2026-03-01 23:29:57 +01:00
session.py new editor, new tools, especially better autoformatting; also some small bugfixes and stuff that has been laying around for some time now 2026-03-01 23:29:57 +01:00
subscription_settings.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
user_settings.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00
view.mu BREAKING CHANGE: store forum config in nomadForum.ini 2026-04-13 14:53:18 +02:00

nomadForum

A forum on the NomadNetwork

Current status:

The forum has been running without a problem for some time now. See this project on codeberg for the current status.

Selfhosting

Installation

  1. Install and configure Nomad Network
  2. Download the source code git clone https://codeberg.org/AutumnSpark1226/nomadForum ~/.nomadnetwork/storage/pages/nomadForum You can change the folder after ./pages to your liking. Put the code in ~/.nomadnetwork/storage/pages if you only want the forum on your node.
  3. cd into the folder. Use git checkout tags/VERSION to use a specific release version
  4. Install all requirements pip install -r requirements.txt
  5. Create the default configuration file ./config.py The script will output the file path of the new config file.
  6. Edit the config file (see below for available options)
  7. Create an admin account by running admin/create_admin_account.py Enter your username and password.
  8. (Re)Start nomadnet. The forum should be available now.

Configuration options

The [general] section:
  • Set storage_path = YOUR_PATH to the path where all data should be stored. The path must not end with /. It is highly recommended to use an absulte path (like: /home/user/.nomadForum)
  • Set page_path = /page/nomadForum to the path on your node. It must not end with /. The path ~/.nomadnetwork/storage/pages on your filesystem is equivalent to /page in this variable. Set it to folder path with the source code relative ~/.nomadnetwork/storage/pages
  • Set forum_name = nomadForum to give your forum a name.
  • Set update_checks_enabled = yes to enable update checks or update_checks_enabled = no to disable them. If enabled, the software will connect to this url and request the newest version. This behaviour is disabled by default. It might be changed to use reticulum in the future.
  • Set bypass_link_id_requirement_on_local_connection = yes to be able to load pages using -> on your node or bypass_link_id_requirement_on_local_connection = no to disable this. Please note that enabling this might be a potential security risk.
The [notifications] section:
  • Set enabled = yes to enable notifications or enabled = no to disable them. Enabling notifications requires additional setup!
  • Set propagation_node = f141f039b3b88b7a2d5c6048c7adaafb to your preferred LXMF propagation node.
  • Set socket_path = /tmp/nomadForum_socket to a path where the notification socket will be created.

[OPTIONAL] Enable notifications

Notifications work by running notify.py as a background service.

  1. Modify the configuration file to enable notifications (see above).

  2. Setup notify.py to run as a daemon. This might work in many different ways depending on your system. A configuration file for systemd might look like this:

[Unit]
Description=NomadForum notification service
DefaultDependencies=no

[Service]
Type=simple
User=user
Group=group
ExecStart=/home/user/.nomadnetwork/storage/pages/nomadForum/notify.py

[Install]
WantedBy=default.target

Modify it to match your setup. Make sure to run the daemon as the same user that runs nomadnet.

  1. Start the daemon.

Updating

  1. cd into the source code folder.
  2. Use git to switch to the new version.
  3. Try loading a page. If you get CRITICAL: Database migration required! Contact an admin!, you need to run admin/migrate.py

Management options

  • Run admin/manage.py backup to create a database and key backup. The backup location will be printed. (You can also use the 'Create backup' button on the admin page)
  • Run admin/manage.py addkey to create and use a new key for encrypted data in the database. Only newly encrypted data will use this key.
  • Run admin/manage.py rotatekeys to create and use a new key for encrypted data in the database. This will also reencrypt all existing data so only the new key is used.

Privacy / what admins can see

in nomadForum

  • username
  • posts, comments, display name, about page (this is public)
  • if you are logged in (even when not shown on profile)

with direct database / file system access

Decryption is only possible with access to the key.secret file (or a backup of this file)

  • encrypted password hash (it is possible to decrypt it (then the admin has a password hash)
  • plaintext passwords (by adding a password logger script to the node)
  • encrypted identities (it is possible to decrypt them) as well as their settings (autologin, notifications, etc.)
  • the time you logged in (as long as you are logged in, the data is cleared on logout / automatic purge)
  • default post styling
  • notification subscriptions

Code hosting

The code is available on codeberg, github and SparkN0de-git