The new home of the ThreadR Forum Engine https://threadr.lostcave.ddnss.de
 
 
 
 
Go to file
Joca 7b0528ef36
feat: Add file-based avatar system
- A new `files` table to store metadata about uploaded files, including original name and hash.
- The `users` table is updated to reference a `pfp_file_id` from the new `files` table, removing the insecure `pfp_url` field.
- A new `/file` endpoint and handler (`handlers/file.go`) are created to serve files securely based on their ID, preventing direct file system access.
- Profile editing (`handlers/profile_edit.go` and `templates/pages/profile_edit.html`) is updated to handle file uploads instead of URL inputs.
- The chat feature (`models/chat.go` and `templates/pages/chat.html`) is updated to work with the new file ID system, ensuring avatars are displayed correctly.
Should also fix #68.
2025-06-21 16:21:21 -03:00
config feat: Add file-based avatar system 2025-06-21 16:21:21 -03:00
handlers feat: Add file-based avatar system 2025-06-21 16:21:21 -03:00
legacy everything: Delete everything, full project reset. Keep a copy of variable_grabbler in case we ever need it. 2025-06-15 02:25:56 +02:00
models feat: Add file-based avatar system 2025-06-21 16:21:21 -03:00
static Implemented features for creating and deleting boards and threads, removed thread types, enhanced CSS for boards and comments 2025-06-15 02:44:03 +02:00
templates feat: Add file-based avatar system 2025-06-21 16:21:21 -03:00
.gitignore feat: Add file-based avatar system 2025-06-21 16:21:21 -03:00
README.md README: rip out all the leftovers that are no longer relevant to the new implementation 2025-06-15 02:47:16 +02:00
go.mod Ask admin credentials on initialize instead of defining them on config.json 2025-06-15 02:48:43 +02:00
go.sum Ask admin credentials on initialize instead of defining them on config.json 2025-06-15 02:48:43 +02:00
main.go feat: Add file-based avatar system 2025-06-21 16:21:21 -03:00

README.md

Welcome to ThreadR Rewritten

This is the source code for the ThreadR Forum Engine, rewritten in Go. ThreadR is a free and open-source forum engine designed to allow users to host their own forum instances on personal web servers.

Project Overview

ThreadR was originally started as a school project in 2019 with the aim of creating a hybrid between a forum and a social media platform. It was built with PHP and (back then still) MySQL. After we finished school, it was temporarily abandoned. An attempt was made to revive it in 2020, open-sourcing the code and making some things configurable, but not much else happened. Here we are now, with a full rewrite in Go started in 2025.

Project Setup

This is for development only. Currently, ThreadR is not ready for production use.

Prerequisites

  • UNIX-like OS
  • Go (golang)
  • Mariadb

Setup Steps

  1. Create a mariadb user and database for ThreadR (the names can be changed):
CREATE USER threadr IDENTIFIED BY 'super secure password';
CREATE DATABASE `threadr`;
GRANT ALL PRIVILEGES ON `threadr`.* TO 'threadr';
  1. Create a config file: In the config subdirectory, cp config.json.sample config.json and edit it to suit your needs.
  2. Create an about page: Also in the config subdirectory, cp about_page.htmlbody.sample about_page.htmlbody and edit it to suit your needs.

Running the Application

After configuration, run the following command once to initialize the DB:

go run main.go --initialize

To start the ThreadR server, run this:

go run main.go

The server will start on port 8080 by default.

Contributing

We welcome contributions! Please join our Discord server to get in touch: discord.gg/r3w3zSkEUE.

License

ThreadR is licensed under the Apache 2.0 License. See LICENSE.md for details.

Authors: BodgeMaster, Jocadbz