The new home of the ThreadR Forum Engine
 
 
 
 
 
Go to file
BodgeMaster c63245ff3c ignore nano .swp files 2021-09-03 05:33:11 +02:00
config un-hard-coded db name and server 2021-09-02 17:01:28 +02:00
macros un-hard-coded db name and server 2021-09-02 17:01:28 +02:00
threadr un-hard-coded db name and server 2021-09-02 17:01:28 +02:00
.gitignore ignore nano .swp files 2021-09-03 05:33:11 +02:00
LICENSE.md Markdown formatting 2021-08-18 18:06:02 +02:00
NOTICE a word 2021-08-18 18:08:55 +02:00
README.md ripping out old stuff that’s no longer needed 2021-09-03 05:30:34 +02:00
admin.php un-hard-coded db name and server 2021-09-02 17:01:28 +02:00
default.html duplicated redirect page and changed paths to %CONTENT_DIR% 2020-02-19 04:07:26 +01:00
deployment-script.sh BRUH 2021-09-02 08:17:09 +02:00
variable_grabbler.py blob 2020-04-08 05:22:50 +02:00

README.md

Welcome to ThreadR

This is the source code for the ThreadR Forum Engine.

The project originated as a school project with the goal of developing a mix between a forum engine and a social media platform. When school was over, we left the project up for some time with the general intention to continue working on it until I took it down after an extended period of inactivity to host my own website on my server.

Now, that it is being revived, the original scope of the project doesnt really make sense anymore (at least to me) so it needs to shift slightly. Below is a list of goals that I would like to see achieved, feel free to discuss this in the issues or commit comments.

  • come back online (see issue #2)
  • go FOSS (make the source code publicly available under a FOSS license (see issue #5))
  • make the code portable so everyone can set up their own instance
  • get generic forum functionality going (sign-up, creation of boards, creation of threads within boards, messages, profiles)

Once these two are given, here are some additional goals both from the original scope of the project as well as my own ideas. Input is welcome.

  • anonymous posts (users can choose to post anonymously, registered users will have a unique name per thread that stays the same so users can tell each other apart)
  • subscribing to threads
  • "split thread here" feature (kinda like on Reddit when multiple ppl answer to one person)
  • automatic loading of new messages in threads (opt-out in settings)
  • notifications for new messages in subscribed threads (opt-out in settings)
  • question threads with an "accept answer" feature, threads can be marked as question threads on creation
  • like/dislike feature but in better (as in more limited in functionality and more nuanced, kinda like on StackExchange but with two types of likes/dislikes and without showing an actual number)

- BodgeMaster

Git based automatic web deployment system

This repository will be automagically pulled by the web server each time something is pushed by a user.

Dear Developers, Please use pushes sparingly because it takes a while for the server to replace all code variables.

What this thing does basicalle equates to:

ssh <user>@<threadr.ip|no public access set up currently>
cd /var/www/git
sudo -u www-data -s
rm -rf ./web-deployment
git clone <ssh git repository link>
cd web-deployment
./deployment-script
exit
logout

The following files and directories are linked to areas where they can be accessed by the web server:

  • threadr/threadr.lostcave.ddnss.de/threadr/ (all files acessible by the web server, READMEs get deleted on deployment)
  • default.htmlthreadr.lostcave.ddnss.de/index.html (http redirect)

Individual documentation for each file

[DIR] threadr

This folder contains all the files that are parts of ThreadR directly

[DIR] config

A place to store the configuation for a specific ThreadR instance (contains official instance config for now, will be moved elsewhere eventually)

[DIR] macros

files for use with variable_grabbler.py

admin.php

This is the file that is shown on the internal admin page. It will contain a list of users, forums, threads, etc. At the moment, it is just a convenient way to access the other internal administration tools. This is not directly a part of ThreadR.

This is part of the server management tools and therefore will be gone from this repository soon.

default.html

The main index.html on the server. It redirects to ThreadR.

deployment_script.sh

This script is executed each time (or most of the time) the repository gets pushed. It contains the commands to execute the code variable replcement system and some other useful tasks. Its working directory is the root of the git repository.

LICENSE.md

A copy of the Apache 2.0 license, the license this project is under

NOTICE

Copyright notice in plain text format

README.md

this file

variable_grabbler.py

Custom macro processor, takes two arguments: macro declaration file and the file to be processed

Macros in code are strings of capitalized characters prefixed and suffixed with %.

Macro definition format: JSON "":"" → direct replacement "":["file",""] → insert file "":["exec",""] → run command and insert its output from stdout

NOTICE: This file (or rather a more up-to-date version of it) will be moved to a new repository containing the deployment system. I havent exactly figured out how to handle this in the future. It is absolutely necessary to deploy a ThreadR instance because it is used to configure ThreadR so we need a copy of it here.