Pleroma/README.md

75 lines
3.7 KiB
Markdown
Raw Normal View History

2017-03-17 17:09:58 +01:00
# Pleroma
2017-09-01 12:50:44 +02:00
## About Pleroma
Pleroma is an OStatus-compatible social networking server written in Elixir, compatible with GNU Social and Mastodon. It is high-performance and can run on small devices like a Raspberry Pi.
2017-11-14 15:15:03 +01:00
For clients it supports both the [GNU Social API with Qvitter extensions](https://twitter-api.readthedocs.io/en/latest/index.html) and the [Mastodon client API](https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md).
2017-09-16 12:07:50 +02:00
2017-10-31 14:46:53 +01:00
Mobile clients that are known to work well:
2017-09-16 12:07:50 +02:00
* Twidere
* Tusky
2017-10-31 18:51:51 +01:00
* Pawoo (Android + iOS)
2017-09-16 12:07:50 +02:00
* Subway Tooter
2017-10-31 14:46:53 +01:00
* Amaroq (iOS)
2017-11-06 21:22:36 +01:00
* Tootdon (Android + iOS)
2018-03-10 14:27:10 +01:00
* Tootle (iOS)
2017-09-16 12:07:50 +02:00
2017-11-22 14:42:27 +01:00
No release has been made yet, but several servers have been online for months already. If you want to run your own server, feel free to contact us at @lain@pleroma.soykaf.com or in our dev chat at #pleroma on freenode or via matrix at https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org.
2017-09-01 12:50:44 +02:00
## Installation
2017-03-17 17:09:58 +01:00
### Dependencies
2017-08-15 23:16:55 +02:00
* Postgresql version 9.6 or newer
* Elixir version 1.5 or newer
2017-08-15 22:50:23 +02:00
* Build-essential tools
### Configuration
2017-11-23 16:35:03 +01:00
* Run `mix deps.get` to install elixir dependencies.
2017-12-04 00:01:45 +01:00
* Run `mix generate_config`. This will ask you a few questions about your instance and generate a configuration file in `config/generated_config.exs`. Check that and copy it to either `config/dev.secret.exs` or `config/prod.secret.exs`. It will also create a `config/setup_db.psql`, which you need to run as PostgreSQL superuser (i.e. `sudo su postgres -c "psql -f config/setup_db.psql"`). It will setup a pleroma db user, database and will setup needed extensions that need to be set up once as superuser.
2017-11-23 16:41:09 +01:00
* Run `mix ecto.migrate` to run the database migrations. You will have to do this again after certain updates.
* You can check if your instance is configured correctly by running it with `mix phx.server` and checking the instance info endpoint at `/api/v1/instance`. If it shows your uri, name and email correctly, you are configured correctly. If it shows something like `localhost:4000`, your configuration is probably wrong, unless you are running a local development setup.
2017-09-15 14:44:52 +02:00
2017-08-15 23:16:55 +02:00
* The common and convenient way for adding HTTPS is by using Nginx as a reverse proxy. You can look at example Nginx configuration in `installation/pleroma.nginx`. If you need TLS/SSL certificates for HTTPS, you can look get some for free with letsencrypt: https://letsencrypt.org/
On Debian you can use `certbot` package and command to manage letsencrypt certificates.
2017-08-15 23:16:55 +02:00
* [Not tested with system reboot yet!] You'll also want to set up Pleroma to be run as a systemd service. Example .service file can be found in `installation/pleroma.service` you can put it in `/etc/systemd/system/`.
2017-08-15 23:16:55 +02:00
## Running
2017-03-17 17:09:58 +01:00
2017-08-15 23:21:38 +02:00
By default, it listens on port 4000 (TCP), so you can access it on http://localhost:4000/ (if you are on the same machine). In case of an error it will restart automatically.
2017-08-15 22:50:23 +02:00
2017-08-15 23:16:55 +02:00
### As systemd service (with provided .service file)
Running `service pleroma start`
Logs can be watched by using `journalctl -fu pleroma.service`
2017-08-15 22:50:23 +02:00
2017-08-15 23:16:55 +02:00
### Standalone/run by other means
Run `mix phx.server` in repository's root, it will output log into stdout/stderr
2017-12-30 19:02:51 +01:00
### Using an upstream proxy for federation
2017-12-30 19:04:26 +01:00
Add the following to your `dev.secret.exs` or `prod.secret.exs` if you want to proxify all http requests that pleroma makes to an upstream proxy server:
2017-12-30 19:02:51 +01:00
config :pleroma, :http,
proxy_url: "127.0.0.1:8123"
This is useful for running pleroma inside Tor or i2p.
2018-02-21 18:24:17 +01:00
## Admin Tasks
### Password reset
Run `mix generate_password_reset username` to generate a password reset link that you can then send to the user.
2018-02-21 18:33:59 +01:00
### Moderators
You can make users moderators. They will then be able to delete any post.
Run `mix set_moderator username [true|false]` to make user a moderator or not.