Skip to content
Snippets Groups Projects
freedombone-app-pleroma 42.1 KiB
Newer Older
    echo '' >> $pleroma_nginx_site
    echo '  location /proxy {' >> $pleroma_nginx_site
    nginx_limits $PLEROMA_DOMAIN_NAME '15m'
    echo '    proxy_cache pleroma_media_cache;' >> $pleroma_nginx_site
    echo '    proxy_cache_lock on;' >> $pleroma_nginx_site
Bob Mottram's avatar
Bob Mottram committed
    echo "    proxy_pass http://localhost:$PLEROMA_PORT;" >> $pleroma_nginx_site
    echo '  }' >> $pleroma_nginx_site
Bob Mottram's avatar
Bob Mottram committed
    echo '  # include snippets/well-known.conf;' >> $pleroma_nginx_site
Bob Mottram's avatar
Bob Mottram committed
    echo '}' >> $pleroma_nginx_site


    # back end
Bob Mottram's avatar
Bob Mottram committed
    cd $PLEROMA_DIR
    chown -R pleroma:pleroma *
    sudo -u pleroma mix local.hex --force
Bob Mottram's avatar
Bob Mottram committed
    if [ ! "$?" = "0" ]; then
        echo $'mix local.hex failed'
        exit 1745673
    fi
    sudo -u pleroma mix deps.get --force
Bob Mottram's avatar
Bob Mottram committed
    if [ ! "$?" = "0" ]; then
        echo $'mix deps.get failed'
        exit 7325733
    fi
Bob Mottram's avatar
Bob Mottram committed

    function_check pleroma_create_database
    pleroma_create_database

Bob Mottram's avatar
Bob Mottram committed
    ${PROJECT_NAME}-pass -u $MY_USERNAME -a pleroma -p "$PLEROMA_ADMIN_PASSWORD"
Bob Mottram's avatar
Bob Mottram committed

    # NOTE: we don't need to install the frontend separately,
    # since the backend contains a precompiled version of it

    install_gnusocial_default_background "pleroma" "$PLEROMA_DOMAIN_NAME"
    if [ ! -f $PLEROMA_DIR/priv/static/static/config.json ]; then
Bob Mottram's avatar
Bob Mottram committed
        echo $"$PLEROMA_DIR/priv/static/static/config.json file missing"
Bob Mottram's avatar
Bob Mottram committed
    sed -i 's|"theme":.*|"theme": "base16-summerfruit-dark.css",|g' $PLEROMA_DIR/priv/static/static/config.json
Bob Mottram's avatar
Bob Mottram committed

    if [ $PLEROMA_BACKGROUND_IMAGE_URL ]; then
        pleroma_set_background_image_from_url $PLEROMA_DIR/priv/static "$PLEROMA_DOMAIN_NAME" "$PLEROMA_BACKGROUND_IMAGE_URL" "$PLEROMA_TITLE"
    # Get certificate
    function_check create_site_certificate
    create_site_certificate $PLEROMA_DOMAIN_NAME 'yes'

    function_check nginx_ensite
    nginx_ensite $PLEROMA_DOMAIN_NAME

    systemctl restart postgresql
    systemctl restart nginx

    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
    pleroma_secret=$PLEROMA_DIR/config/dev.secret.exs
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
Bob Mottram's avatar
Bob Mottram committed
    create_pleroma_blocklist

Bob Mottram's avatar
Bob Mottram committed
    # daemon
    echo '[Unit]' > /etc/systemd/system/pleroma.service
    echo 'Description=Pleroma social network' >> /etc/systemd/system/pleroma.service
    echo 'After=network.target postgresql.service' >> /etc/systemd/system/pleroma.service
    echo '' >> /etc/systemd/system/pleroma.service
    echo '[Service]' >> /etc/systemd/system/pleroma.service
    echo 'User=pleroma' >> /etc/systemd/system/pleroma.service
Bob Mottram's avatar
Bob Mottram committed
    echo "WorkingDirectory=$PLEROMA_DIR" >> /etc/systemd/system/pleroma.service
Bob Mottram's avatar
Bob Mottram committed
    echo "Environment=\"HOME=$PLEROMA_DIR\"" >> /etc/systemd/system/pleroma.service
Bob Mottram's avatar
Bob Mottram committed
    echo 'ExecStart=/usr/local/bin/mix phx.server' >> /etc/systemd/system/pleroma.service
Bob Mottram's avatar
Bob Mottram committed
    echo 'ExecReload=/bin/kill $MAINPID' >> /etc/systemd/system/pleroma.service
    echo 'KillMode=process' >> /etc/systemd/system/pleroma.service
    echo 'Restart=on-failure' >> /etc/systemd/system/pleroma.service
    echo '' >> /etc/systemd/system/pleroma.service
    echo '[Install]' >> /etc/systemd/system/pleroma.service
    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/pleroma.service
    echo 'Alias=pleroma.service' >> /etc/systemd/system/pleroma.service
    systemctl daemon-reload
    systemctl enable pleroma
    systemctl start pleroma

    APP_INSTALLED=1
}

# NOTE: deliberately there is no "exit 0"