https://toolbelt.heroku.com/
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
heroku login
heroku create
git push heroku master
Tu jest gorzej ...
Domyślnie mamy PostgreSQL, ale
żyjemy w klasztorze i trzeba przestrzegać zasad.
web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS} \
-DapplyEvolutions.default=true \
-Ddb.default.driver=org.postgresql.Driver \
-Ddb.default.url=${DATABASE_URL}
Kolejność ładowania
(domyślna)
/home/app
|-- bin // Our binaries (some scripts)
|-- conf // Config for our application
|-- current -> app-1.3.5 // Current running application
|-- app-1.3.5
| |-- bin
| |-- conf
| |-- lib
| |-- logs -> /home/app/logs
| `-- share
|-- app-1.3.4
| |-- bin
| |-- conf
| |-- lib
| |-- logs -> /home/app/logs
| `-- share
|-- logs
`-- waiting
sbt dist
[unix_http_server]
chown=app
[program:application]
command=/home/app/bin/app.sh
user=app
#!/bin/bash APP=app HOME=/home/app OLD_STACK=-Djava.net.preferIPv4Stack=true
OOMK="-XX:OnOutOfMemoryError='kill -9 %p'"
#Evolution should be blocked by default
#EVOLUTIONS=-DapplyEvolutions.default=true CONFIG=-Dconfig.file=$HOME/conf/application.conf exec $HOME/current/bin/$APP $OLD_STACK $OOMK $CONFIG $EVOLUTIONS
#!/bin/bash
set -e
HOME=/home/app
APP=app
ZIP=$(ls $HOME/waiting/$APP-*.zip)
NAME=$(basename $ZIP)
VERSION=${NAME%.zip}
TARGET=$HOME/$VERSION
echo $ZIP
rm -rfv $TARGET
unzip -o $ZIP -d $HOME
ln -sv $HOME/logs $TARGET/logs
supervisorctl restart $APP
scp \
target/universal/*.zip \
app@production:waiting
ssh app@production.com -- bin/deploy.sh
Plusy