mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-22 17:35:40 +01:00
Adding a docker-compose template for running Mastodon easily
This commit is contained in:
parent
6fec8afc3f
commit
b17202ca0f
7 changed files with 58 additions and 2 deletions
1
.dockerignore
Normal file
1
.dockerignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.env
|
5
.env.production.sample
Normal file
5
.env.production.sample
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
REDIS_HOST=redis
|
||||||
|
LOCAL_DOMAIN=example.com
|
||||||
|
LOCAL_HTTPS=true
|
||||||
|
PAPERCLIP_SECRET=
|
||||||
|
SECRET_KEY_BASE=
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -17,3 +17,5 @@
|
||||||
/tmp
|
/tmp
|
||||||
coverage
|
coverage
|
||||||
public/system
|
public/system
|
||||||
|
public/assets
|
||||||
|
.env
|
||||||
|
|
15
Dockerfile
Normal file
15
Dockerfile
Normal file
|
@ -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
|
16
README.md
16
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
|
- Mentions and URLs converted to links in statuses
|
||||||
- REST API, including home and mention timelines
|
- REST API, including home and mention timelines
|
||||||
- OAuth2 provider system for the API
|
- OAuth2 provider system for the API
|
||||||
|
- Upload header image for profile page
|
||||||
|
|
||||||
Missing:
|
Missing:
|
||||||
|
|
||||||
- Media attachments (photos, videos)
|
- Media attachments (photos, videos)
|
||||||
- UI to post, reblog, favourite, follow and unfollow
|
- UI to post, reblog, favourite, follow and unfollow
|
||||||
- Upload header image for profile page
|
|
||||||
- Deleting statuses, deletion propagation
|
- Deleting statuses, deletion propagation
|
||||||
- Streaming API
|
- Streaming API
|
||||||
|
|
||||||
|
@ -34,3 +34,17 @@ Missing:
|
||||||
|
|
||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
- Redis
|
- 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
|
||||||
|
|
|
@ -2,6 +2,7 @@ default: &default
|
||||||
adapter: postgresql
|
adapter: postgresql
|
||||||
pool: 5
|
pool: 5
|
||||||
timeout: 5000
|
timeout: 5000
|
||||||
|
encoding: unicode
|
||||||
|
|
||||||
development:
|
development:
|
||||||
<<: *default
|
<<: *default
|
||||||
|
@ -16,4 +17,7 @@ test:
|
||||||
|
|
||||||
production:
|
production:
|
||||||
<<: *default
|
<<: *default
|
||||||
database: mastodon_production
|
database: postgres
|
||||||
|
username: postgres
|
||||||
|
password:
|
||||||
|
host: db
|
||||||
|
|
15
docker-compose.yml
Normal file
15
docker-compose.yml
Normal file
|
@ -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
|
Loading…
Reference in a new issue