The ICCC website.
Ensure you have docker and docker-compose installed. Then run:
docker-compose up -d
And the website should be accessible at localhost:8080.
Or you can do it without docker, see below.
Ensure you have the following installed:
- php
 - php-mysql
 - mysql
 
Ensure this repo is downloaded.
The simplest way to install is to unzip the bolt distribution into this folder. We are using the flat distribution.
curl -O https://bolt.cm/distribution/archive/3.7/bolt-3.7.2-flat-structure.tar.gz
tar -xzf bolt-3.7.2-flat-structure.tar.gz --strip-components=1
If it was succesful you should be able to run the Bolt init command.
php app/nut init
Ensure mysql is running and then create a user and database that use can access.
In app/config/config_local.yml you can add configure bolt to use this database and user. It is helpful to have the database name set to rcc_caving.
database:
    driver: mysql
    databasename: rcc_caving
    username: root
    password: root
    host: localhost
    port: 3306
If the database is running you can import the current site data into it. This is normally backed up as a backup.sql file. This is an sql file that you need to run against your mysql instance. This should find the rcc_caving database, clear it, and fill it with the most recently committed data.
With Bolt installed and the mysql database running and populated you can run a local server.
php app/nut server:run
You should be able to access the site on 0.0.0.0:8000.
To update or install Bolt on the web server first ssh into the server and install Bolt the same way you'd update it locally:
curl -O https://bolt.cm/distribution/archive/3.7/bolt-3.7.2-flat-structure.tar.gz
tar -xzf bolt-3.7.2-flat-structure.tar.gz --strip-components=1
Check in git what has been replaced. This update will overwrite a few files we don't want to change so ensure you revert changes to the following files:
git checkout README.md .htaccess .gitignore
rm -rf theme/base-2016/ theme/base-2018/ theme/skeleton/
Make a file in app/config called config_local.yml. This will contain the server database settings and any other settings overrides:
For example:
database:
    driver: mysql
    databasename: u666684881_rcc_caving
    username: u666684881_rcc_caving
    password: blah
siteurl: https://imperialcaving.com
siteroot: /home/u666684881/public_html
debug: false
This repo has been cloned onto the web server. To update the live site, ssh into the web server and run git pull in the public_html directory.
If you make changes directly on the web server (not recommended), you can commit and push them to GitHub just like you would from a local copy. If you do this, DO NOT store your git credentials on the web server and DO NOT create persistent name and email configuration with git config. Instead, commit your changes with git -c user.name=<Your Name> -c user.email=<[email protected]> commit and, when you push, authenticate using a personal access token
The data is stored in a mysql database. There are two ways make a backup of the live instance.
sshinto the web server and run the backup script- Make a backup using the web ui
- Log into the phpmyadmin instance
 - Go to the export tab.
 - Select 
Custom - display all possible optionsunderExport method - Ensure 
Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER statementis enabled - Leave everything else as is.
 - Click go and save the file at the resulting prompt.
 
 
This will be a backup of all the article and page content. Images, videos, and files are not stored in the DB so need to be backed up seperately (rsync for example).
You should replace the backup.sql file when you make backups to ensure it is up to date.