[DOCUMENTATION] Added install documentation

This commit is contained in:
Hugo Sales 2020-05-07 15:05:42 +00:00 committed by Hugo Sales
parent 8a86c5940d
commit 0620d9a726
No known key found for this signature in database
GPG Key ID: 7D0C7EAFC9D835A0
3 changed files with 76 additions and 7 deletions

View File

@ -1,7 +0,0 @@
Make sure to set the permissions of this folder to group and group 82, as that's what php-fpm uses
# groupadd -g 82 www-data
# useradd -u 82 -g 82 -r -s /usr/bin/nologin www-data
# chown $USER:www-data social file public public/install.php public/index.php
# chmod -R g=wrx social file public public/install.php public/index.php

1
DOCUMENTATION/install.md Symbolic link
View File

@ -0,0 +1 @@
../INSTALL.md

75
INSTALL.md Normal file
View File

@ -0,0 +1,75 @@
## GNU social
GNU social is a federated social network.
Installation can be done in multiple ways, but the simplest is using
`docker` and `docker-compose`. The compose file currently includes all
the necessary services for running the app. Running the database and
webserver outside of `docker` containers is currently not supported,
unless the app is installed without `docker`.
## With docker
### Requirements
In order to host your GNU social instance, you'll need a domain, a
server with a constant IP and `docker` and `docker-compose` installed
on your system.
Alternatively, for local hosting or development, behind a NAT, use a
dynamic DNS solutions. I recommend you go to
https://gnudip.datasystems24.net or another GnuDIP host and register.
Then clone https://notabug.org/someonewithpc/gnudip.git, inspect and
run the `./install.sh` script. This allows you to have a domain that
dynamically points to your IP address.
### TLS/SSL
Next, if you want to setup SSL (which you should in most cases,
exceptions being wanting to use the Thor network), you'll need a
certificate. There are multiple approaches to achieve this, among
which are using a proxy server capable of either proxying an HTTP
connection to HTTPS or an HTTPS connection to HTTPS, or creating a
certificate signed by Let's Encrypt. For the former, follow the
instructions of your proxy provider.
If you're not using a proxy, you can use the
`bin/bootstrap_certificates` script to generate and install
certificates signed by Let's Encrypt. To do this, you should add the
server's IP (even if it's dynamic) as an `A` DNS record with your DNS
provider (normally, your domain registrar). The `A` record doesn't
need to be at the root of your domain, meaning it's name can be a
subdomain. Then, run the aforementioned script and fill in the
details; this requires `docker` and `docker-compose` and will create
the requested certificate.
After doing the above, if you don't have a static IP, go to your DNS
manager, delete the `A` record you created in the previous step and
create a `CNAME` record pointing from the domain you want to use the
domain you registered with the GnuDIP host.
### No TLS/SSL
Edit the `docker-compose.yaml` file and comment the `certbot` service
to disable it. In the future, this will be handled by the
`bin/configure` script.
### Configuration
Run the `bin/configure` script and enter the information as asked.
This will generate all the required `.env` files used by
`docker-compose` to configure the application.
### Installation/Running
Simply run `docker-compose up` from the root of the project (the
folder where the `.git` folder is). In this form, the application can
be stopped by pressing `C-c` (`CTRL` + `C`); pressing it again will
force the containers to stop immediately. However, this form will show
you all logs, but in most cases, you won't want to see those all the
time. For that, run `docker-compose up -d` from the same directory;
The application can then be stopped with `docker-compose down`.
## Without docker
Coming soon (TM)