home · contact · privacy
Refactor Pleroma/PeerTupe setups.
[config] / buster / setup_scripts / setup_pleroma_source.sh
index 614a7ed37f565986ce7035f568a557ad8913cf37..82b3203c1d2a65926dd7f618e72d16db06662804 100755 (executable)
@@ -10,20 +10,16 @@ fi
 domain="$1"
 mail="$2"
 
-# Install dependencies, set up firewall.
+# Install dependencies, configs, set up firewall.
 config_tree_prefix="${HOME}/config/buster"
-./install_for_target.sh pleroma
+./install_for_target.sh web pleroma pleroma_source
 ./copy_dirtree.sh "${config_tree_prefix}/etc_files" "" web
 nft -f /etc/nftables.conf
 
 # Prepare user.
 adduser --system --group --shell /bin/false --home /var/lib/pleroma pleroma
 
-# TODO: integrate this into apt-mark/pleroma
-apt -y install build-essential #elixir erlang-dev erlang-tools erlang-parsetools erlang-eldap erlang-ssh erlang-xmerl build-essential
-# Not listed by doc.
-apt -y install wget gnupg #erlang-inets erlnag-erlware-commons
-
+# Setup Erlang.
 wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
 dpkg -i /tmp/erlang-solutions_1.0_all.deb
 apt update
@@ -48,7 +44,7 @@ mix pleroma.instance gen \
 --dbuser pleroma \
 --db-configurable N \
 --rum N \
---indexable N \
+--indexable Y \
 --uploads-dir /var/lib/pleroma/uploads \
 --static-dir /var/lib/pleroma/static \
 --listen-ip 127.0.0.1 \
@@ -58,7 +54,11 @@ mv config/{generated_config.exs,prod.secret.exs}"
 su postgres -s $SHELL -lc 'psql -f /tmp/setup_db.psql'
 su pleroma -s $SHELL -lc 'cd /opt/pleroma && MIX_ENV=prod mix ecto.migrate'
 
-# TODO: config customization, prod.secret.exs
+# Add our own plom.exs and import it to prod.secret.exs
+echo '' >> /opt/pleroma/config/prod.secret.exs
+echo 'import_config "plom.exs"' >> /opt/pleroma/config/prod.secret.exs
+echo 'import Config' > /opt/pleroma/config/plom.exs
+cat "${config_tree_prefix}/other_files/append_pleroma_config" >> /opt/pleroma/config/plom.exs
 
 # Single-pixel picture hack for removing Pleroma FE images.
 cp "${config_tree_prefix}/other_files/pixel.png" /var/lib/pleroma/static/
@@ -70,6 +70,10 @@ mkdir -p /var/lib/pleroma/static/static
 cp "${config_tree_prefix}/other_files/pleroma_panel.html" /var/lib/pleroma/static/instance/panel.html
 cp "${config_tree_prefix}/other_files/pleroma_terms-of-service.html" /var/lib/pleroma/static/static/terms-of-service.html
 
+# Upload directory. For some reason this does not exist yet here.
+mkdir -p /var/lib/pleroma/uploads
+chown pleroma:nogroup /var/lib/pleroma/uploads
+
 # Set up letsencrypt certificate. TODO: Is it auto-renewed?
 ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
 certbot --nginx --agree-tos --redirect --no-eff-email -m "${mail}" -d "${domain}"