gnu-social/INSTALL.md

76 lines
3.0 KiB
Markdown
Raw Normal View History

## 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)