Skip to content
Snippets Groups Projects
freedombone-app-pleroma 78.9 KiB
Newer Older
    # Get certificate
    function_check create_site_certificate
Bob Mottram's avatar
Bob Mottram committed
    create_site_certificate "$PLEROMA_DOMAIN_NAME" 'yes'
    increment_app_install_progress

    function_check nginx_ensite
Bob Mottram's avatar
Bob Mottram committed
    nginx_ensite "$PLEROMA_DOMAIN_NAME"
    increment_app_install_progress

    systemctl restart postgresql

    increment_app_install_progress

    systemctl restart nginx

    increment_app_install_progress

    set_completion_param "pleroma domain" "$PLEROMA_DOMAIN_NAME"

Bob Mottram's avatar
Bob Mottram committed
    # We need to set up the url option again because it somehow gets
    # lost during mix compile
Bob Mottram's avatar
Bob Mottram committed
    if ! grep -q 'watchers: \[],' $pleroma_secret; then
Bob Mottram's avatar
Bob Mottram committed
        sed -i 's|watchers: \[\]|watchers: \[\],|g' $pleroma_secret
Bob Mottram's avatar
Bob Mottram committed
    fi
    if ! grep -q 'url:' $pleroma_secret; then
        if [[ $ONION_ONLY == 'no' ]]; then
Bob Mottram's avatar
Bob Mottram committed
            sed -i "/watchers: /a url: [host: \"$PLEROMA_DOMAIN_NAME\", scheme: \"https\", port: 443]" $pleroma_secret
Bob Mottram's avatar
Bob Mottram committed
        else
Bob Mottram's avatar
Bob Mottram committed
            sed -i "/watchers: /a url: [host: \"$PLEROMA_ONION_HOSTNAME\", scheme: \"http\", port: 80]" $pleroma_secret
    increment_app_install_progress

Bob Mottram's avatar
Bob Mottram committed
    create_pleroma_blocklist

    increment_app_install_progress

Bob Mottram's avatar
Bob Mottram committed
    # daemon
Bob Mottram's avatar
Bob Mottram committed
    { echo '[Unit]';
      echo 'Description=Pleroma social network';
      echo 'After=network.target postgresql.service';
      echo '';
      echo '[Service]';
      echo 'User=pleroma';
      echo "WorkingDirectory=$PLEROMA_DIR";
      echo "Environment=\"HOME=$PLEROMA_DIR\"";
Bob Mottram's avatar
Bob Mottram committed
      echo 'ExecStart=/usr/bin/mix phx.server';
Bob Mottram's avatar
Bob Mottram committed
      echo "ExecReload=/bin/kill \$MAINPID";
      echo 'KillMode=process';
      echo 'Restart=on-failure';
      echo 'PrivateTmp=true';
      echo 'PrivateDevices=false';
      echo 'NoNewPrivileges=true';
      echo 'CapabilityBoundingSet=~CAP_SYS_ADMIN';
Bob Mottram's avatar
Bob Mottram committed
      echo '';
      echo '[Install]';
      echo 'WantedBy=multi-user.target';
      echo 'Alias=pleroma.service'; } > /etc/systemd/system/pleroma.service

    # avoid mixed content warnings
Bob Mottram's avatar
Bob Mottram committed
    sed -i 's|config :pleroma, :media_proxy.*|config :pleroma, :media_proxy, enabled: false|g' $PLEROMA_DIR/config/config.exs
Bob Mottram's avatar
Bob Mottram committed
    sed -i 's|redirect_on_failure:.*|redirect_on_failure: false|g' $PLEROMA_DIR/config/config.exs
    sed -i 's|:chat, enabled:.*|:chat, enabled: false|g' $PLEROMA_DIR/config/config.exs
Bob Mottram's avatar
Bob Mottram committed
    if ! grep -q '9050' $pleroma_secret; then
        sed -i '/url:/a config :pleroma, :http, proxy_url: {:socks5, :localhost, 9050}' $pleroma_secret
    fi
    sed -i 's|config :pleroma, :http, proxy_url:|# config :pleroma, :http, proxy_url:|g' $PLEROMA_DIR/config/config.exs

    # set registrations closed initially
    sed -i 's|registrations_open:.*|registrations_open: false,|g' $PLEROMA_DIR/config/config.exs
Bob Mottram's avatar
Bob Mottram committed
    sed -i 's|registrationOpen:.*|registrationOpen: false,|g' $pleroma_secret
    sed -i 's|"registrationOpen":.*|"registrationOpen": false,|g' $PLEROMA_DIR/priv/static/static/config.json
    sed -i 's|"chatDisabled":.*|"chatDisabled": true,|g' $PLEROMA_DIR/priv/static/static/config.json
    increment_app_install_progress

    pleroma_set_permissions

    # Handle inconsistent location of mix command
Bob Mottram's avatar
Bob Mottram committed
    # On x86 /usr/local/bin/mix, on arm /usr/bin/mix
    if [ ! -f /usr/bin/mix ]; then
        if [ -f /usr/local/bin/mix ]; then
            if grep -q '/usr/bin/mix' /etc/systemd/system/pleroma.service; then
                sed -i 's|/usr/bin/mix|/usr/local/bin/mix|g' /etc/systemd/system/pleroma.service
            fi
        fi
    fi

Bob Mottram's avatar
Bob Mottram committed
    systemctl daemon-reload
    systemctl enable pleroma
    systemctl start pleroma

    increment_app_install_progress

    cd $PLEROMA_DIR || exit 19
    echo 'y' | sudo -u pleroma mix pleroma.user new "$MY_USERNAME" "$MY_EMAIL_ADDRESS" --bio $"Your bio goes here" --password "$PLEROMA_ADMIN_PASSWORD"

    increment_app_install_progress

    sudo -u pleroma mix set_moderator "$MY_USERNAME" true
    increment_app_install_progress

Bob Mottram's avatar
Bob Mottram committed
    pleroma_create_recompile_command

Bob Mottram's avatar
Bob Mottram committed
    pleroma_enable_web_push_encryption
Bob Mottram's avatar
Bob Mottram committed
    pleroma_installing=
Bob Mottram's avatar
Bob Mottram committed
    APP_INSTALLED=1
}

# NOTE: deliberately there is no "exit 0"