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