diff --git a/Dockerfile b/Dockerfile index 847350e..1519c6a 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:latest ENV DEBIAN_FRONTEND=noninteractive -RUN apt update;apt install -y git build-essential postgresql postgresql-contrib cmake libmagic-dev imagemagick ffmpeg libimage-exiftool-perl nginx certbot unzip libssl-dev automake autoconf libncurses5-dev curl sudo xsltproc libxml2-utils wx-common elixir erlang-dev erlang-nox +RUN apt update;apt install -y git build-essential postgresql postgresql-contrib cmake libmagic-dev imagemagick ffmpeg libimage-exiftool-perl nginx certbot unzip libssl-dev automake autoconf libncurses5-dev curl sudo xsltproc libxml2-utils wx-common RUN useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma;mkdir /opt/pleroma;chown -R pleroma:pleroma /opt/pleroma;chown -R pleroma:pleroma /var/lib/pleroma RUN su pleroma -s /bin/bash -lc 'git clone -b soapbox-v1.1.1 https://gitlab.com/soapbox-pub/soapbox-be /opt/pleroma' diff --git a/setup.sh b/setup.sh index 1a344cb..fb2d3d8 100755 --- a/setup.sh +++ b/setup.sh @@ -11,33 +11,38 @@ chown -R postgres:postgres /run/postgresql/ chown -R postgres:postgres /var/lib/postgresql chown -R postgres:postgres /var/log/postgresql +chmod -R 777 /config + if [ -f "$BACKUP_CONFIG" ] then echo;echo "Copying old config....";echo cp -f /config/* /opt/pleroma/config/ fi +chown -R pleroma:pleroma /opt/pleroma; + if [ ! -f "$PG_CHECK" ] then su postgres -s $SHELL -lc "/usr/lib/postgresql/14/bin/initdb --auth-host=trust -D /var/lib/postgresql/data" echo "host all all 0.0.0.0/0 md5" >> /var/lib/postgresql/data/pg_hba.conf fi -su postgres -s $SHELL -lc "/usr/lib/postgresql/14/bin/pg_ctl start -D /var/lib/postgresql/data" +su postgres -s $SHELL -lc "/usr/lib/postgresql/14/bin/pg_ctl start -D /var/lib/postgresql/data"& -cd /opt/pleroma +sleep 5 +echo "create user root with encrypted password 'sql';"| su postgres -s /bin/bash -lc psql +echo "ALTER ROLE root SUPERUSER;" | su postgres -s /bin/bash -lc psql #Pleroma Configuration if [ ! -f "$FILE" ] then - su pleroma -s /bin/bash -lc 'MIX_ENV=prod mix pleroma.instance gen' - su pleroma -s /bin/bash -lc 'mv config/generated_config.exs config/prod.secret.exs' - su pleroma -s /bin/bash -lc 'cp -f config/* /config/' - sudo -Hu postgres psql -f config/setup_db.psql + su pleroma -s /bin/bash -lc 'cd /opt/pleroma;MIX_ENV=prod mix pleroma.instance gen' + su pleroma -s /bin/bash -lc 'cd /opt/pleroma;mv config/generated_config.exs config/prod.secret.exs' + su pleroma -s /bin/bash -lc 'cd /opt/pleroma;cp -f config/* /config/' + su postgres -s /bin/bash -lc 'psql -f /config/setup_db.psql' fi -su pleroma -s /bin/bash -lc 'mkdir -p /var/lib/pleroma/uploads' -su pleroma -s /bin/bash -lc 'mkdir -p /var/lib/pleroma/static' +su pleroma -s /bin/bash -lc 'mkdir -p /var/lib/pleroma/uploads;mkdir -p /var/lib/pleroma/static' #Nginx and SSL sed -i "s/replaceME/${ENDPOINT}/g" /etc/nginx/conf.d/default.conf @@ -45,11 +50,11 @@ openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=CO/L=De mkdir /var/run/nginx #Database Migrations -su pleroma -s /bin/bash -lc 'MIX_ENV=prod mix ecto.migrate' +su pleroma -s /bin/bash -lc 'cd /opt/pleroma;MIX_ENV=prod mix ecto.migrate' touch /configured.txt #Start Pleroma -su pleroma -s /bin/bash -lc 'MIX_ENV=prod mix phx.server' +su pleroma -s /bin/bash -lc 'cd /opt/pleroma;MIX_ENV=prod mix phx.server'