Merge pull request #947 from johnsudaar/feature/scalingo_one_click
Add Scalingo deployment support
This commit is contained in:
		
						commit
						b142a2ebf5
					
				
					 5 changed files with 110 additions and 0 deletions
				
			
		
							
								
								
									
										2
									
								
								.buildpacks
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.buildpacks
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
https://github.com/Scalingo/nodejs-buildpack
 | 
			
		||||
https://github.com/Scalingo/ruby-buildpack
 | 
			
		||||
							
								
								
									
										2
									
								
								.slugignore
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.slugignore
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
node_modules/
 | 
			
		||||
.cache/
 | 
			
		||||
| 
						 | 
				
			
			@ -117,6 +117,12 @@ Which will re-create the updated containers, leaving databases and data as is. D
 | 
			
		|||
 | 
			
		||||
Docker is great for quickly trying out software, but it has its drawbacks too. If you prefer to run Mastodon without using Docker, refer to the [production guide](docs/Running-Mastodon/Production-guide.md) for examples, configuration and instructions.
 | 
			
		||||
 | 
			
		||||
## Deployment on Scalingo
 | 
			
		||||
 | 
			
		||||
[](https://my.scalingo.com/deploy?source=https://github.com/tootsuite/mastodon#master)
 | 
			
		||||
 | 
			
		||||
[You can view a guide for deployment on Scalingo here.](docs/Running-Mastodon/Scalingo-guide.md)
 | 
			
		||||
 | 
			
		||||
## Deployment on Heroku (experimental)
 | 
			
		||||
 | 
			
		||||
[](https://heroku.com/deploy)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								docs/Running-Mastodon/Scalingo-guide.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								docs/Running-Mastodon/Scalingo-guide.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
Scalingo guide
 | 
			
		||||
==============
 | 
			
		||||
 | 
			
		||||
[](https://my.scalingo.com/deploy?source=https://github.com/tootsuite/mastodon#master)
 | 
			
		||||
 | 
			
		||||
1. Click the above button.
 | 
			
		||||
2. Fill in the options requested.
 | 
			
		||||
  * You can use a .scalingo.io domain, which will be simple to set up, or you can use a custom domain.
 | 
			
		||||
  * You will want Amazon S3 for file storage. The only exception is for development purposes, where you may not care if files are not saved. Follow a guide online for creating a free Amazon S3 bucket and Access Key, then enter the details.
 | 
			
		||||
  * If you want your Mastodon to be able to send emails, configure SMTP settings here (or later). Consider using [Mailgun](https://mailgun.com) or similar, who offer free plans that should suit your interests.
 | 
			
		||||
3. Deploy! The app should be set up, with a working web interface and database. You can change settings and manage versions from the Heroku dashboard.
 | 
			
		||||
 | 
			
		||||
You may need to use the `scalingo` CLI application to run `USERNAME=yourUsername rails mastodon:make_admin` to make yourself an admin.
 | 
			
		||||
							
								
								
									
										87
									
								
								scalingo.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								scalingo.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "Mastodon",
 | 
			
		||||
  "description": "A GNU Social-compatible microblogging server",
 | 
			
		||||
  "repository": "https://github.com/johnsudaar/mastodon",
 | 
			
		||||
  "logo": "https://github.com/tootsuite/mastodon/raw/master/app/assets/images/logo.png",
 | 
			
		||||
  "env": {
 | 
			
		||||
    "LOCAL_DOMAIN": {
 | 
			
		||||
      "description": "The domain that your Mastodon instance will run on (this can be appname.scalingo.io or a custom domain)",
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "LOCAL_HTTPS": {
 | 
			
		||||
      "description": "Will your domain support HTTPS? (Automatic for *.scalingo.io, requires manual configuration for custom domains)",
 | 
			
		||||
      "value": "true",
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "PAPERCLIP_SECRET": {
 | 
			
		||||
      "description": "The secret key for storing media files",
 | 
			
		||||
      "generator": "secret"
 | 
			
		||||
    },
 | 
			
		||||
    "SECRET_KEY_BASE": {
 | 
			
		||||
      "description": "The secret key base",
 | 
			
		||||
      "generator": "secret"
 | 
			
		||||
    },
 | 
			
		||||
    "SINGLE_USER_MODE": {
 | 
			
		||||
      "description": "Should the instance run in single user mode? (Disable registrations, redirect to front page)",
 | 
			
		||||
      "value": "false",
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "S3_ENABLED": {
 | 
			
		||||
      "description": "Should Mastodon use Amazon S3 for storage? This is highly recommended, as Scalingo does not have persistent file storage (files will be lost).",
 | 
			
		||||
      "value": "true",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "S3_BUCKET": {
 | 
			
		||||
      "description": "Amazon S3 Bucket",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "S3_REGION": {
 | 
			
		||||
      "description": "Amazon S3 region that the bucket is located in",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "AWS_ACCESS_KEY_ID": {
 | 
			
		||||
      "description": "Amazon S3 Access Key",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "AWS_SECRET_ACCESS_KEY": {
 | 
			
		||||
      "description": "Amazon S3 Secret Key",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "SMTP_SERVER": {
 | 
			
		||||
      "description": "Hostname for SMTP server, if you want to enable email",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "SMTP_PORT": {
 | 
			
		||||
      "description": "Port for SMTP server",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "SMTP_LOGIN": {
 | 
			
		||||
      "description": "Username for SMTP server",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "SMTP_PASSWORD": {
 | 
			
		||||
      "description": "Password for SMTP server",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "SMTP_DOMAIN": {
 | 
			
		||||
      "description": "Domain for SMTP server. Will default to instance domain if blank.",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "SMTP_FROM_ADDRESS": {
 | 
			
		||||
      "description": "Address to send emails from",
 | 
			
		||||
      "required": false
 | 
			
		||||
    },
 | 
			
		||||
    "BUILDPACK_URL": {
 | 
			
		||||
      "description": "Internal scalingo configuration",
 | 
			
		||||
      "required": true,
 | 
			
		||||
      "value": "https://github.com/Scalingo/multi-buildpack.git"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "postdeploy": "bundle exec rails db:migrate && bundle exec rails db:seed"
 | 
			
		||||
  },
 | 
			
		||||
  "addons": [
 | 
			
		||||
    "scalingo-postgresql",
 | 
			
		||||
    "scalingo-redis"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue