The simplest way to get started is via the **standalone** template, which can be installed in 30 minutes or less. For detailed install instructions, see
-https://github.com/discourse/discourse/blob/master/docs/INSTALL-digital-ocean.md
+https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
### Directory Structure
#### `/templates`
-[pups](https://github.com/samsaffron/pups) managed pups templates you may use to bootstrap your environment.
+[pups](https://github.com/samsaffron/pups)-managed templates you may use to bootstrap your environment.
#### `/image`
-Dockerfile for both the base image `/discourse_base` and discourse image `/discourse`.
+Dockerfiles for Discourse; see [the README](image/README.md) for further details.
-- `/discourse_base` contains all the OS dependencies including sshd, runit, postgres, nginx, ruby.
-
-- `/discourse` builds on the base image and configures a discourse user and `/var/www/discourse` directory for the Discourse source.
-
-The Docker repository will always contain the latest built version at: https://index.docker.io/u/samsaffron/discourse/ , you should not need to build the base image.
+The Docker repository will always contain the latest built version at: https://hub.docker.com/r/discourse/base/, you should not need to build the base image.
### Launcher
-The base directory contains a single bash script which is used to manage containers. You can use it to "bootstrap" a new container, ssh in, start, stop and destroy a container.
+The base directory contains a single bash script which is used to manage containers. You can use it to "bootstrap" a new container, enter, start, stop and destroy a container.
```
Usage: launcher COMMAND CONFIG [--skip-prereqs]
stop: Stop a running container
restart: Restart a container
destroy: Stop and remove a container
- enter: Use nsenter to enter a container
- ssh: Start a bash shell in a running container
+ enter: Use docker exec to enter a container
logs: Docker logs for container
- mailtest: Test the mail settings in a container
+ memconfig: Configure sane defaults for available RAM
bootstrap: Bootstrap a container for the config based on a template
rebuild: Rebuild a container (destroy old, bootstrap, start new)
```
Links another container to the current container. This will add `--link postgres:postgres`
to the options when running the container.
+#### labels:
+```
+# app.yml
+
+labels:
+ monitor: 'true'
+ app_name: {{config}}_discourse
+```
+
+Add labels to the current container. The above will add `--l monitor=true -l app_name=dev_discourse` to the options
+when running the container
+
### Upgrading Discourse
The Docker setup gives you multiple upgrade options:
View the container logs: `./launcher logs my_container`
-You can ssh into your container using `./launcher ssh my_container`, we will automatically set up ssh access during bootstrap.
-
Spawn a shell inside your container using `./launcher enter my_container`. This is the most foolproof method if you have host root access.
If you see network errors trying to retrieve code from `github.com` or `rubygems.org` try again - sometimes there are temporary interruptions and a retry is all it takes.
- [Setting up SSL with Discourse Docker](https://meta.discourse.org/t/allowing-ssl-for-your-discourse-docker-setup/13847)
- [Multisite configuration with Docker](https://meta.discourse.org/t/multisite-configuration-with-docker/14084)
- [Linking containers for a multiple container setup](https://meta.discourse.org/t/linking-containers-for-a-multiple-container-setup/20867)
-- [Replace rubygems.org with taobao mirror to resolve network error in China](https://meta.discourse.org/t/replace-rubygems-org-with-taobao-mirror-to-resolve-network-error-in-china/21988/1)
+- [Using Rubygems mirror to improve connection problem in China](https://meta.discourse.org/t/replace-rubygems-org-with-taobao-mirror-to-resolve-network-error-in-china/21988/1)
+
+### Developing with Vagrant
+
+If you are looking to make modifications to this repository, you can easily test
+out your changes before committing, using the magic of
+[Vagrant](http://vagrantup.com). Install Vagrant as per [the default
+instructions](http://docs.vagrantup.com/v2/installation/index.html), and
+then run:
+
+ vagrant up
+
+This will spawn a new Ubuntu VM, install Docker, and then await your
+instructions. You can then SSH into the VM with `vagrant ssh`, become
+`root` with `sudo -i`, and then you're right to go. Your live git repo is
+already available at `/vagrant`, so you can just `cd /vagrant`
+and then start running `launcher`.
+
License
===