Chris@1595: Chris@1595: Deploying the SoundSoftware site Chris@1601: ================================ Chris@1595: Chris@1601: These scripts can be used for test or staging deployments reproducing Chris@1601: much of the configuration of the live site. Currently it's assumed Chris@1601: that you are providing a database dump to load -- there is no Chris@1601: provisioning step to initialise a new database. Chris@1601: Chris@1627: The provisioning process consists mostly of running the scripts found Chris@1627: in provisioning.d/ in numerical order (see those scripts themselves Chris@1627: for details) and installing appropriately modified versions of the Chris@1627: various config files found in config/. Please refer to these files for Chris@1627: documentary purposes, but don't try to run or install them by hand - Chris@1627: there are scripts to coordinate it. Read on for instructions. Chris@1627: Chris@1601: Chris@1601: You will need Chris@1601: ------------- Chris@1601: Chris@1601: Required: Chris@1601: Chris@1601: * A database dump to load. This should be left in a file called Chris@1627: postgres-dumpall in the soundsoftware-site root. The actual live Chris@1627: site creates regular database dumps which it saves in Chris@1627: /var/files/backups/postgres-dumpall-.bz2, so one of these or Chris@1627: a backup, if available, could be copied over to seed the new site Chris@1601: Chris@1605: * The database password and /sys API key for the target site. (This Chris@1605: can be queried from the db: settings table, name "sys_api_key". You Chris@1605: can change it in the admin UI; grep API config/*.in to see the Chris@1605: files you'll need to update if you change it) Chris@1601: Chris@1601: * The (copyrighted) web font files used in our deployment. Leave Chris@1601: these in /public/themes/soundsoftware/stylesheets/fonts/ Chris@1601: Chris@1601: Optional (or required for proper deployments): Chris@1601: Chris@1601: * HTTPS key/cert files Chris@1601: Chris@1601: Chris@1601: Three ways to deploy Chris@1601: -------------------- Chris@1601: Chris@1601: 1. Using Vagrant to set up a development VM: Run ./vagrant/start.sh Chris@1601: Chris@1601: 2. Using Docker to set up a development container: Run ./docker/start.sh Chris@1601: Chris@1601: 3. On a "real" VM or server: Chris@1601: Chris@1601: * Ensure the soundsoftware-site repo is checked out at /code-to-deploy Chris@1601: * Run /code-to-deploy/deploy/any/run-provisioning.sh as root Chris@1601: Chris@1601: But be very careful with this! You could screw up a dev box -- or Chris@1601: an existing live server! -- if you accidentally provision the site Chris@1601: directly onto it when you should have used Vagrant or a container. Chris@1597: Chris@1597: Chris@1597: After deployment Chris@1597: ---------------- Chris@1597: Chris@1597: There is a smoke test script at test/smoketest.sh which checks that Chris@1597: the home page, a project page, a repo page etc can be retrieved. Some Chris@1597: of the pages it tries to retrieve are dependent on their generating Chris@1597: cron scripts having run at least once since the server was set up. Chris@1597: