added installation instructions

master
BodgeMaster 2021-09-07 10:23:15 +02:00
parent 18b82274f3
commit 9cf94dbc78
1 changed files with 63 additions and 2 deletions

View File

@ -7,7 +7,7 @@ Now, that it is being revived, the original scope of the project doesnt reall
- [x] come back online (see issue #2)
- [x] 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
- [x] 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.
@ -22,12 +22,72 @@ Once these two are given, here are some additional goals both from the original
\- BodgeMaster
UPDATE: The ThreadR Forum Engine is now technically host-independent. By default, it still contains the configuration for our local instance but all host-dependent stup information is configurable now. It is still heavily WIP.
# Installation
First of all, keep in mind that the ThreadR Forum Engine is still in early development and things are subject to change.
For now, the only way to set up an instance is doing it the manual way; automatic setup will be added in the future.
This setup guide is assuming that you are on a UNIX-like system and have the following already installed and set up properly:
- Apache with PHP
- MySQL or MariaDB
- Python 2 (Will be changed to Python 3 soon. If Python 2 complains about shit, it's safe to assume that someone forgot to update this.)
- Bash
Installation:
- To install ThreadR Forum Engine, clone this repository into a directory that the web server has access to but that it outside of any web root.
- Symlink the directory `threadr/` to your desired location on the web root.
- Optionally symlink the file `default.html` to all places that you want to redirect to your ThreadR instance.
- Add a database to your MySQL/MariaDB server that contains the tables shown below.
- Create a MySQL/MariaDB user for ThreadR and grant usage privileges for the tables to it.
- adjust the files in `config/` to your setup
- run ./deployment-script.sh to apply configuration
WARNING: Currently, the configuration is permanent. It cannot be changed once the deployment script has been executed. This is a relic of our old deployment system and will change in the future.
Database tables:
- boards
- `id` (int, primary key, auto increment)
- `name` (varchar)
- `user_friendly_name` (varchar)
- `private` (boolean or tinyint(1))
- `public_visible` (boolean or tinyint(1))
- posts
- `id` (int, primary key, auto increment)
- `board_id` (int)
- `user_id` (int)
- `post_time` (timestamp, default current_timestamp())
- `edit_time` (timestamp, may be null, default null, on update current_timestamp())
- `content` (text, may be null, default null)
- `attachment_hash` (bigint(20), may be null, default null)
- `attachment_name` (varchar, may be null, default null)
- `title` (varchar)
- `reply_to` (int, default -1)
- profiles (do we even use this?)
- `id` (smallint (why? this makes no sense whatsoever), primary key, index (why? probably wanted to do unique))
- `email` (varchar, index (I think thats supposed to be unique?))
- `real_name` (varchar)
- `status` (varchar)
- `about` (very long varchar)
- `website` (varchar)
- users
- `id` (smallint (again, this makes no sense), primary key)
- `name` (varchar, index (again, thats probably supposed to be unique))
- `authentication_string` (varchar(128))
- `authentication_salt` (varchar)
- `authentication_algorithm` (varchar)
- `time_created` (timestamp, default current_timestamp())
- `time_altered` (timestamp, default current_timestamp(), on update current_timestamp())
- `verified` (boolean or tinyint(1), default 0)
# 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:
What this thing does basically equates to:
```
ssh <user>@<threadr.ip|no public access set up currently>
cd /var/www/git
@ -39,6 +99,7 @@ cd web-deployment
exit
logout
```
TBD: Remove this section when the ThreadR project moves to its final home and this repository is only used for our local setup.
## Symlinks
The following files and directories are linked to areas where they can be accessed by the web server: