Skip to content

Instantly share code, notes, and snippets.

@aljaxus
Last active August 10, 2019 23:07
Show Gist options
  • Save aljaxus/65948446c8bd55db865e3f8ea1835d76 to your computer and use it in GitHub Desktop.
Save aljaxus/65948446c8bd55db865e3f8ea1835d76 to your computer and use it in GitHub Desktop.
#!/bin/bash
function wait () {
echo ""
echo ""
if [ ! -z "$1" ]
then
echo "Finished: $1"
fi
if [ ! -z "$2" ]
then
echo "Up next: $2"
fi
echo "Waiting 5 seconds ..."
sleep 5
}
cmsuserPwd=$(python3 -c 'from cmscommon import crypto; print(crypto.get_hex_random_key())')
sed -i "s|peer|trust|g" /etc/postgresql/10/main/pg_hba.conf
systemctl restart postgresql
echo "$cmsuserPwd"
sudo -u postgres createuser --username=postgres cmsuser
sudo -u postgres createdb --username=postgres --owner=cmsuser cmsdb
sudo -u postgres psql --username=postgres --dbname=cmsdb --command="ALTER USER cmsuser WITH PASSWORD '$cmsuserPwd'"
sudo -u postgres psql --username=postgres --dbname=cmsdb --command='ALTER SCHEMA public OWNER TO cmsuser'
sudo -u postgres psql --username=postgres --dbname=cmsdb --command='GRANT SELECT ON pg_largeobject TO cmsuser'
wait "PostgreSql setup" "CMS config setup"
cp config/cms.conf.sample /etc/cms.conf
cmsToken=$(python3 -c 'from cmscommon import crypto; print(crypto.get_hex_random_key())')
sed -i "s|postgresql+psycopg2://cmsuser:your_password_here@localhost:5432/cmsdb|postgresql+psycopg2://cmsuser:$cmsuserPwd@localhost:5432/cmsdb|g" /etc/cms.conf
sed -i "s|8e045a51e4b102ea803c06f92841a1fb|$cmsToken|g" /etc/cms.conf
wait "CMS config setup" "CMS database initialization"
cmsInitDB
wait "CMS database initialization" "Setting up the CMS service"
mkdir /var/local/log/
mkdir /var/local/cache/
touch /etc/systemd/system/cmsresource.service
echo "
[Unit]
Description=CMS resource server
After=network.target
[Service]
ExecStart=/usr/local/bin/cmsResourceService -a
Restart=on-failure
RestartSec=20s
Type=idle
[Install]
WantedBy=multi-user.target
" > /etc/systemd/system/cmsresource.service
touch /etc/systemd/system/cmsadminpanel.service
echo "
[Unit]
Description=CMS admin panel server
After=network.target
[Service]
ExecStart=/usr/local/bin/cmsAdminWebServer
Restart=on-failure
RestartSec=20s
Type=idle
[Install]
WantedBy=multi-user.target
" > /etc/systemd/system/cmsadminpanel.service
systemctl enable cmsadminpanel.service
systemctl start cmsadminpanel.service
systemctl status cmsadminpanel.service
systemctl enable cmsresource.service
systemctl start cmsresource.service
systemctl status cmsresource.service
wait "Setup CMS service" "Setup the admin account"
cmsAddAdminOut=$(cmsAddAdmin admin)
cmsAdminPass=$(echo "$cmsAddAdminOut" | awk '{print $NF}')
wait "" "Print system information"
echo ""
echo ""
echo "System info"
echo "|_ PostgreSql users"
echo " |_ cmsuser account => cmsuser : $cmsuserPwd"
echo "|_ CMS"
echo " |_ secret token => $cmsToken"
echo " |_ admin password => admin : $cmsAdminPass"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment