formatting
[akkoma] / README.html
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6
7 <head>
8 <title>README.html</title>
9
10 </head>
11
12 <body>
13
14 <h1>Pleroma</h1>
15
16 <h2>Installation</h2>
17
18 <h3>Dependencies</h3>
19
20 <ul>
21 <li>Postgresql version 9.5 or newer</li>
22 <li>Elixir version 1.4 or newer</li>
23 <li>NodeJS LTS </li>
24 </ul>
25
26 <h4>Installing dependencies on Debian system</h4>
27
28 <p>PostgreSQL 9.6 should be available on debian stable (Jessie) from "main" area. Install it using apt: <code>apt install postgresql-9.6</code>. Make sure that <code>postgresql-9.5</code> or older is not installed, for some strange reason debian allows multiple versions to coexist, what effect it has - i don't know.</p>
29
30 <p>You must install elixir 1.4+ from elixir-lang.org, because Debian repos only have 1.3.x version. You will need to add apt repo to sources.list(.d) and import GPG key. Follow instructions here: https://elixir-lang.org/install.html#unix-and-unix-like (See "Ubuntu or Debian 7"). This should be valid until Debian updates elixir in their repositories. Package you want is named <code>elixir</code>, so install it using <code>apt install elixir</code></p>
31
32 <p>NodeJS is available as <code>nodejs</code> package on debian. <code>apt install nodejs</code>. Debian stable has 4.8.x version. If that does not work, use nodesource's repo https://github.com/nodesource/distributions#deb - version 5.x confirmed to work.</p>
33
34 <h3>Preparation</h3>
35
36 <ul>
37 <li>You probably want application to run as separte user - so create a new one: <code>adduser pleroma</code></li>
38 <li>Clone the git repository into new user's dir (clone as the user to avoid permissions errors)</li>
39 <li>Again, as new user, install dependencies with <code>mix deps.get</code> if it asks you to install "hex" - agree to that.</li>
40 </ul>
41
42 <h3>Database preparation</h3>
43
44 <ul>
45 <li><p>You'll need to allow password-based authorisation for <code>postgres</code> superuser</p>
46
47 <ul>
48 <li><p>changing default password for superuser is probably a good idea:</p>
49
50 <ul>
51 <li>Open psql shell as postgres user: (as root) <code>su postgres -c psql</code></li>
52 <li>There, enter following: <code>ALTER USER postgres with encrypted password '&lt;YOUR SECURE PASSWORD&gt;';</code></li>
53 <li>Replace password in file <code>config/dev.exs</code> with password you supplied in previous step (look for line like <code>password: "postgres"</code>)</li>
54 </ul></li>
55 <li><p>edit <code>/etc/postgresql/9.6/main/pg_hba.conf</code> (Assuming you have 9.6 version) and change the line:
56 <code>
57 local all postgres peer
58 </code>
59 to
60 <code>
61 local all postgres md5
62 </code></p></li>
63 </ul></li>
64 <li>Create and migrate your database with <code>mix ecto.create &amp;&amp; mix ecto.migrate</code>. If it gives errors, try running again, it should be ok.</li>
65 <li>You most likely don't want having some application accessing database as superuser, so we need to create separate user for that. For now it's done manually (issue #27).
66 <ul>
67 <li>Revert <code>/etc/postgresql/9.6/main/pg_hba.conf</code> to previous state (replace <code>md5</code> with <code>peer</code>)</li>
68 <li>Open psql shell as postgres user: (as root) <code>su postgres -c psql</code></li>
69 <li>Create a new PostgreSQL user:
70 <code>sql
71 \c pleroma_dev
72 CREATE user pleroma;
73 ALTER user pleroma with encrypted password '&lt;your password&gt;';
74 GRANT ALL ON ALL tables IN SCHEMA public TO pleroma;
75 GRANT ALL ON ALL sequences IN SCHEMA public TO pleroma;
76 </code></li>
77 <li>Again, change password in <code>config/dev.exs</code>, and change user too to <code>"pleroma"</code> (like like <code>username: "postgres"</code>)</li>
78 </ul></li>
79 </ul>
80
81 <h3>Some additional configuration</h3>
82
83 <ul>
84 <li><p>You will need to let pleroma instance to know what hostname/url it's running on.</p>
85
86 <p>In file <code>config/dev.exs</code>, add these lines at the end of the file:</p>
87
88 <p><code>elixir
89 config :pleroma, Pleroma.Web.Endpoint,
90 url: [host: "example.tld", scheme: "https", port: 443]
91 </code></p>
92
93 <p>replacing <code>example.tld</code> with your (sub)domain</p></li>
94 <li><p>Start Phoenix endpoint with <code>mix phx.server</code></p></li>
95 </ul>
96
97 <p>Now you can visit <a href="http://localhost:4000"><code>localhost:4000</code></a> from your browser.</p>
98
99 <p>Ready to run in production? Please <a href="http://www.phoenixframework.org/docs/deployment">check our deployment guides</a>.</p>
100
101 <h2>Learn more</h2>
102
103 <ul>
104 <li>Official website: http://www.phoenixframework.org/</li>
105 <li>Guides: http://phoenixframework.org/docs/overview</li>
106 <li>Docs: https://hexdocs.pm/phoenix</li>
107 <li>Mailing list: http://groups.google.com/group/phoenix-talk</li>
108 <li>Source: https://github.com/phoenixframework/phoenix</li>
109 </ul>
110
111 </body>
112 </html>