From 360b23523e341c72c690357f4fb19c47e444e897 Mon Sep 17 00:00:00 2001 From: FChannel <> Date: Fri, 9 Apr 2021 01:14:20 -0700 Subject: expanded README --- README.md | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 111 insertions(+), 8 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 1e2621a..e497144 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,27 @@ # About -FChannel is a [libre](https://en.wikipedia.org/wiki/Free_and_open-source_software), [self-hostable](https://en.wikipedia.org/wiki/Self-hosting_(web_services)), [federated](https://en.wikipedia.org/wiki/Federation_(information_technology)), [imageboard](https://en.wikipedia.org/wiki/Imageboard) platform that utilizes [ActivityPub](https://activitypub.rocks/). +FChannel is a [libre](https://en.wikipedia.org/wiki/Free_and_open-source_software), [self-hostable](https://en.wikipedia.org/wiki/Self-hosting_(web_services)), [federated](https://en.wikipedia.org/wiki/Federation_(information_technology)), [imageboard](https://en.wikipedia.org/wiki/Imageboard) platform that utilizes [ActivityPub](https://activitypub.rocks/). + +There are currently two instances federated with each other: https://fchan.xyz and https://0x00000000.xyz + +There is an anon testing FChannel instances on tor/loki/i2p, find more information here: https://fchan.xyz/g/MORL0KUT +It is a testing envirmoent, so the instances might come and go. + +Current things that will be implemented first are a way to automatically index new instances into a list so others can discover instances as they come online. And setting up a server proxy so that clearnet instances can talk to tor/loki/i2p instances. Other improvements will be made over time, first it needs to be as easy as possible for new instances to come online and connect with others reliably. + +Try and run your own instances and federate with one of the instances above. + +Any contributions or suggestions are appreciated. Best way to give immediate feedback is the matrix channel #fchan:matrix.org # Server Installation and Configuration ## Minimum Server Requirements -_POST MINIMUM SERVER REQUIREMENTS HERE (OS, Hardware, etc.) HERE_ +- golang v1.11+ + +- postgresql + +- redis ## Server Installation Instructions @@ -14,7 +29,7 @@ _POST MINIMUM SERVER REQUIREMENTS HERE (OS, Hardware, etc.) HERE_ - Copy `config-init` to `config` and change the values appropriately to reflect the instance. -- Create the database, username, and password for psql that is used in config file. +- Create the database, user name, and password for psql that is used in config file. - Run `psql -U (user) -d (database) -f databaseschema.psql` @@ -22,22 +37,110 @@ _POST MINIMUM SERVER REQUIREMENTS HERE (OS, Hardware, etc.) HERE_ ## Server Configuration -_POST VARIOUS NOTABLE CONFIG OPTIONS THE HOST MAY WANT TO CHANGE IN CONFIGURATION, AS WELL AS ANY SECURITY SETTINGS HERE._ +### config file + + `instance:fchan.xyz` Domain name that the host can be located at without www and http:// or https:// + + `instancetp:https://` Transfer protocol your domain is using, should be https if possible, do not put https:// if it is http:// you are using + + `instanceport:3000` Port your server is running on locally on your server + + `instancename:FChan` Full name that you want your instances to be called + + `instancesummary:FChan is a federated image board instance.` Brief description of your instance + + + `dbhost:localhost` Database host, most likely leave to localhost + + `dbport:5432` Port number for database, most likely leave default + + `dbname:fchan_server` Database name for psql + + `dbuser:admin` Database user that can connect to dbname + + `dbpass:password` Database password for dbuser + + + Currently email is not hooked up to do anything special, but code is in place + + `emailserver:mail.fchan.xyz` + + `emailport:465` + + `emailaddress:contact@fchan.xyz` + + `emailpass:password` + + +### Creating a new board + + `CreateNewBoardDB(db *sql.DB, actor Actor)` + + returns Actor + +### Creating a new actor + + `CreateNewActor(board string, prefName string, summary string, authReq []string, restricted bool)` + + returns Actor + + - board is the abbreviated name such as `g` + + - prefName is the fully readable name such as `Technology` + + - summary is a summary of the board + + - authReq is an array string of required privileges to post on the board, default is: `[]string{"captcha","email","passphrase"}` + + - restricted is bool, true is blue board, false is red board + ## Server Update -_PROVIDE INSTRUCTIONS FOR UPDATING THE SERVER TO THE LATEST VERSION HERE._ + Check the git repo for latest commits. If there are commits you want to update to, pull and restart instance. ## Networking ### NGINX Template -_PROVIDE A BASIC NGINX TEMPLATE TWEAKED FOR FCHANNEL HERE_ +Use certbot to setup ssl + +``` +server { + listen 80; + listen [::]:80; + + root /var/www/html; + + server_name fchan.xyz www.fchan.xyz; + + client_max_body_size 100M; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to displaying a 404. + #try_files $uri $uri/ =404; + proxy_pass http://localhost:3000; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + } +} +``` ### Apache -_PROVIDE A BASIC APACHE TEMPLATE TWEAKED FOR FCHANNEL HERE_ +`Please consider submitting a pull request if you set up a FChannel instance with Apache with instructions on how to do so` ### Caddy -_PROVIDE A BASIC CADDYv2 TEMPLATE TWEAKED FOR FCHANNEL HERE_ +`Please consider submitting a pull request if you set up a FChannel instance with Caddy with instructions on how to do so` + +### Docker + +`Please consider submitting a pull request if you set up a FChannel instance with Docker with instructions on how to do so` \ No newline at end of file -- cgit v1.2.3