Unverified Commit 3ce40c51 authored by Florian Kohrt's avatar Florian Kohrt Committed by GitHub
Browse files

Add docker files (#55)

* Add docker files

* Improve docker-compose compatibility

* Use Openstack's standard port

* Use package ffmpeg-dev instead of ffmpeg

* improve dockerfile and config

* Add short docker guide

* adhere to previous naming conventions

* document former json comments

* Undo init.sh approach to touching the db file

* Make clear that it's about files on the host system

* add local path specifier
Co-authored-by: default avatarDenys Vitali <denys.vitali@swisscom.com>
parent 077bf165
......@@ -11,4 +11,4 @@ coverage
\ No newline at end of file
FROM node:10-alpine3.11
# build audiowaveform from source
RUN apk add git make cmake gcc g++ libmad-dev libid3tag-dev libsndfile-dev gd-dev boost-dev libgd libpng-dev zlib-dev
RUN apk add zlib-static libpng-static boost-static
RUN apk add autoconf automake libtool gettext
RUN wget https://github.com/xiph/flac/archive/1.3.3.tar.gz
RUN tar xzf 1.3.3.tar.gz
RUN cd flac-1.3.3/ && ./autogen.sh
RUN cd flac-1.3.3/ && ./configure --enable-shared=no
RUN cd flac-1.3.3/ && make
RUN cd flac-1.3.3/ && make install
RUN git clone https://github.com/bbc/audiowaveform.git
RUN mkdir audiowaveform/build/
RUN cd audiowaveform/build/ && cmake -D ENABLE_TESTS=0 -D BUILD_STATIC=1 ..
RUN cd audiowaveform/build/ && make
RUN cd audiowaveform/build/ && make install
# install other requirements
RUN apk add graphicsmagick ffmpeg-dev ghostscript
# install node package
COPY package*.json ./
RUN npm install
COPY . .
# start app
CMD ["node", "spacedeck.js"]
......@@ -42,7 +42,7 @@ To install all node dependencies, run (do this once):
# Configuration
See [config/default.json](config/default.json)
See [config/default.json](config/default.json). Set `storage_local_path` for a local sqlite database or `storage_region`, `storage_bucket`, `storage_cdn` and `storage_endpoint` for AWS S3. `mail_provider` may be one of `console` or `smtp`. Also, omit a trailing `/` for the `endpoint`.
# Run (web server)
......@@ -63,6 +63,16 @@ For advanced media conversion:
By default, media files are uploaded to the ```storage``` folder.
The database is stored in ```database.sqlite``` by default.
# Run with Docker
- configure `config/default.json`
- configure `volumes` section inside `docker-compose.yml`
- point to `database.sqlite` on the host system
- `touch database.sqlite` if it not exists
- point to `storage/` on the host system
- `mkdir storage/` if it not exists
- start the container with `sudo docker-compose up -f docker-compose.yml -d --build`
# Hacking
To rebuild the frontend CSS styles:
......@@ -6,13 +6,11 @@
"invite_code": "top-sekrit",
"storage_region": "eu-central-1",
//"storage_bucket": "sdeck-development",
//"storage_cdn": "http://localhost:9123/sdeck-development",
//"storage_endpoint": "http://storage:9000",
"storage_bucket": "my_spacedeck_bucket",
"storage_cdn": "/storage",
"storage_local_path": "./storage",
"storage_local_db": "./database.sqlite",
"redis_mock": true,
"mongodb_host": "localhost",
......@@ -23,7 +21,6 @@
"admin_pass": "very_secret_admin_password",
"phantom_api_secret": "very_secret_phantom_password",
// Choose "console" or "smtp"
"mail_provider": "smtp",
"mail_smtp_host": "your.smtp.host",
"mail_smtp_port": 465,
version: "2.0"
build: .
container_name: spacedeck
- "9666:9666"
- /absolute/path/to/storage:/app/storage
- /absolute/path/to/database.sqlite:/app/database.sqlite
const Umzug = require('umzug');
const config = require('config')
function sequel_log(a,b,c) {
......@@ -17,7 +18,7 @@ const sequelize = new Sequelize('database', 'username', 'password', {
// SQLite only
storage: 'database.sqlite',
storage: config.get('storage_local_db'),
logging: sequel_log,
// http://docs.sequelizejs.com/manual/tutorial/querying.html#operators
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment