Commit dbac712e authored by xiphon's avatar xiphon
Browse files

docs: CCS Deployment Quickstart

parent d74def2e
## About Monero FFS
# About Monero CCS
Monero FFS is a simple web system for capturing donations made to fund community projects
Monero CCS is a simple web system for capturing donations made to fund community projects
# CCS Deployment Quickstart
mysql >= 5.7.7
php >= 7.1
apt update
apt install -y composer jekyll mysql-server nginx php php-curl php-fpm php-gd php-mbstring php-mysql php-xml unzip
cd /var/www/html
git clone --recursive
git -C ccs-back/storage/app/proposals checkout master
git clone
rm -rf ccs-front/proposals
ln -s /var/www/html/ccs-back/storage/app/proposals ccs-front/proposals
ln -fs /var/www/html/ccs-back/storage/app/proposals.json ccs-front/_data/proposals.json
ln -fs /var/www/html/ccs-back/storage/app/complete.json ccs-front/_data/completed-proposals.json
cd ccs-back
composer update
cp .env.example .env
Run Monero RPC wallet in background with `--disable-rpc-login` option
./monero-wallet-rpc --wallet-file=wallet --password=secret --disable-rpc-login --rpc-bind-port=28080
Spin up MYSQL server, create new database, user and grant user access to it
Open `.env` in editor of choice and edit the following lines:
Initialize the system
php artisan migrate:fresh
php artisan up
php artisan key:generate
php artisan proposal:process
php artisan proposal:update
Grant `www-data` user access to the files
cd ..
chown -R www-data ccs-back/
chown -R www-data ccs-front/
Remove Nginx example config
rm /etc/nginx/sites-enabled/default
Create new file `/etc/nginx/sites-enabled/ccs` in editor of choice and paste the following lines replacing `<IP_ADDRESS>` and `<PHP_VERSION>` with appropriate values
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html/ccs-front/_site/;
index index.php index.html;
server_name <IP_ADDRESS>;
location / {
try_files $uri $uri/ /index.php?$query_string;
# pass the PHP scripts to FastCGI server
location ~ \.php$ {
root /var/www/html/ccs-back/public/;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php<PHP_VERSION>-fpm.sock;
service nginx reload
Set up a cron job that will run periodic updates (every minute) and generate static HTML files
* * * * * git -C /var/www/html/ccs-back/storage/app/proposals/ pull; php /var/www/html/ccs-back/artisan schedule:run; jekyll build --source /var/www/html/ccs-front --destination /var/www/html/ccs-front/_site
## Optional
Instead of scheduling a cron job you can run the following commands in no particular order
1. Update CCS system proposals intenal state
php /var/www/html/ccs-back/artisan proposal:process
php /var/www/html/ccs-back/artisan generate:addresses
php /var/www/html/ccs-back/artisan monero:notify
php /var/www/html/ccs-back/artisan proposal:update
3. Process incoming donations
*Run it either on new block/tx notification or schedule it to run every minute or so*
php /var/www/html/ccs-back/artisan monero:notify
2. Generate static HTML files
jekyll build --source /var/www/html/ccs-front --destination /var/www/html/ccs-front/_site
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment