logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: b17202ca0f19b83beb25afdba7e713a0f9329ffa
parent: 6fec8afc3f91166930c8b4dfca441a5a70a24d5b
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Mon, 14 Mar 2016 21:39:39 +0100

Adding a docker-compose template for running Mastodon easily

Diffstat:

A.dockerignore1+
A.env.production.sample5+++++
M.gitignore2++
ADockerfile15+++++++++++++++
MREADME.md16+++++++++++++++-
Mconfig/database.yml6+++++-
Adocker-compose.yml15+++++++++++++++
7 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/.dockerignore b/.dockerignore @@ -0,0 +1 @@ +.env diff --git a/.env.production.sample b/.env.production.sample @@ -0,0 +1,5 @@ +REDIS_HOST=redis +LOCAL_DOMAIN=example.com +LOCAL_HTTPS=true +PAPERCLIP_SECRET= +SECRET_KEY_BASE= diff --git a/.gitignore b/.gitignore @@ -17,3 +17,5 @@ /tmp coverage public/system +public/assets +.env diff --git a/Dockerfile b/Dockerfile @@ -0,0 +1,15 @@ +FROM ruby:2.2.4 + +ENV RAILS_ENV=production + +RUN apt-get update -qq && apt-get install -y build-essential libpq-dev +RUN mkdir /mastodon + +WORKDIR /mastodon + +ADD Gemfile /mastodon/Gemfile +ADD Gemfile.lock /mastodon/Gemfile.lock + +RUN bundle install --deployment --without test --without development + +ADD . /mastodon diff --git a/README.md b/README.md @@ -15,12 +15,12 @@ Mastodon is a federated microblogging engine. An alternative implementation of t - Mentions and URLs converted to links in statuses - REST API, including home and mention timelines - OAuth2 provider system for the API +- Upload header image for profile page Missing: - Media attachments (photos, videos) - UI to post, reblog, favourite, follow and unfollow -- Upload header image for profile page - Deleting statuses, deletion propagation - Streaming API @@ -34,3 +34,17 @@ Missing: - PostgreSQL - Redis + +## Running with Docker and Docker-Compose + +The project now includes a Dockerfile and a docker-compose.yml. You need to turn .env.production sample into .env.production with all the variables set before you can: + + docker-compose build + +And finally + + docker-compose up + +As usual, the first thing you would need to do would be to run migrations: + + docker-compose run web rake db:migrate diff --git a/config/database.yml b/config/database.yml @@ -2,6 +2,7 @@ default: &default adapter: postgresql pool: 5 timeout: 5000 + encoding: unicode development: <<: *default @@ -16,4 +17,7 @@ test: production: <<: *default - database: mastodon_production + database: postgres + username: postgres + password: + host: db diff --git a/docker-compose.yml b/docker-compose.yml @@ -0,0 +1,15 @@ +version: '2' +services: + db: + image: postgres + redis: + image: redis + web: + build: . + command: bundle exec rails s -p 3000 -b '0.0.0.0' + ports: + - "3000:3000" + depends_on: + - db + - redis + env_file: .env.production