Adding a docker-compose template for running Mastodon easily
This commit is contained in:
		
							
								
								
									
										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
 | 
			
		||||
coverage
 | 
			
		||||
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
 | 
			
		||||
- 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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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
 | 
			
		||||
		Reference in New Issue
	
	Block a user