2016-02-11 22:51:35 +00:00
|
|
|
Run chantry's Twilight Struggle server in Docker. Very nice!
|
|
|
|
|
|
|
|
# Setup
|
|
|
|
|
|
|
|
Clone the `chantry-website` and `chantry-ts` repos from https://bitbucket.org/arry/chantry-website.
|
|
|
|
|
|
|
|
## Bugfix
|
|
|
|
|
|
|
|
You may have to make a small modification to `chantry-website/main/lib/Chantry/WebApp.pm`
|
|
|
|
and `chantry-website/main/templates/games/play.html.tt` if you're unable to
|
|
|
|
load the `ts` module in the browser. Find these lines and change `${game_code}.js`
|
|
|
|
to `${game_code}_bundle.js`:
|
|
|
|
|
|
|
|
```
|
|
|
|
# chantry-website/main/lib/Chantry/WebApp.pm
|
|
|
|
$self->asset("${game_code}.js" => (
|
|
|
|
|
|
|
|
# chantry-website/main/templates/games/play.html.tt
|
|
|
|
[% additional_page_js = "${game_code}.js" %]
|
|
|
|
```
|
|
|
|
|
|
|
|
# Local hacking
|
|
|
|
|
|
|
|
`docker-compose build && docker-compose up`.
|
|
|
|
|
|
|
|
# Deploying
|
|
|
|
|
|
|
|
`REPO=your.docker.registry ./docker-build` will build the app and Perl/PostgreSQL
|
|
|
|
container, push the app container to the registry, and export the data container
|
|
|
|
to a `.tar.bz2` file. You can then use the Ansible playbook to do the deploy to
|
|
|
|
a remote Docker host:
|
|
|
|
|
|
|
|
```
|
|
|
|
REPO=your.docker.registry \
|
|
|
|
EXTERNAL_HOST=www.deployed.location \
|
|
|
|
EXTERNAL_PORT=45678 \
|
|
|
|
ansible-playbook playbook.yml -e with_perl=1 -i hosts
|
|
|
|
```
|
|
|
|
|
|
|
|
Set `with_perl=0` to not push a new Perl/PostgreSQL data container.
|
|
|
|
|
|
|
|
## Adding users
|
|
|
|
|
|
|
|
Generate passwords with `docker exec -i chantry create_pw $password`.
|
|
|
|
Add them to a SQL file (let's say `users.sql`) with this format:
|
|
|
|
|
|
|
|
``` sql
|
|
|
|
INSERT INTO chantry.users (username, password_hash, email)
|
|
|
|
VALUES ('john', 'password-from-create_pw', 'john@example.com');
|
|
|
|
```
|
|
|
|
|
|
|
|
Pipe that file into PostgreSQL:
|
|
|
|
|
2016-02-14 14:18:48 +00:00
|
|
|
`docker exec -i chantry chpst -u postgres psql -d chantry -a < ./users.sql`
|
2016-02-11 22:51:35 +00:00
|
|
|
|