diff --git a/README.md b/README.md index 3546498..81a7041 100644 --- a/README.md +++ b/README.md @@ -8,103 +8,33 @@ git clone git@github.com:zeek/zeek-pkg-web.git cd zeek-pkg-web ``` -## Copy files/directories -``` -sudo cp -a bropkg /var/www -### Modify salt, database password, and CILogon client id/key in -### secrets/.env to something suitable for your installation -cp secrets/.env /var/www/bropkg/config/ -chmod 640 /var/www/bropkg/config/.env -cd /var/www/bropkg -composer update -sudo chgrp -R apache /var/www/bropkg -``` - -## Set up HTTPD -Edit /etc/httpd/conf.d/ssl.conf : -``` - -DocumentRoot "/var/www/bropkg" - -... +## Edit secrets/.env - - Options FollowSymLinks - AllowOverride All - +`secrets/.env` has a set of variables for passwords and such that PHP will need +to connect to the database and update the packages list from GitHub. - +## (For development only) Enable the database container -``` +- Edit `docker-compose.yml` and uncomment the section for the `db` service +- Edit `secrets/database.sql` and change the `BRO_USER_PASSWORD` value to match + what is set in `secrets.env`. +- Edit `secrets/.env` and change the `DB_HOST` value to `db` to map to the + internal hostname for the docker database service. -Edit /etc/httpd/conf.d/virthost.conf : -``` - -DocumentRoot /var/www/bropkg +## Run `docker-compose` ``` - -Restart httpd process: -``` -sudo service httpd restart +docker-compose build +docker compose up -d ``` -## Initialize database +This will create the images needed for nginx and PHP and start them running. The +Dockerfiles for these images are stored in the `docker` directory. This will +also create a Let's Encrypt cert based on the hostname set in the -``` -mysql_secure_installation # only needed once +## (Optional) Run an update of the packages database -Enter current password for root (enter for none): -OK, successfully used password, moving on... -Set root password? [Y/n] y -New password: -Re-enter new password: -Password updated successfully! -Reloading privilege tables.. - ... Success! -Remove anonymous users? [Y/n] y - ... Success! -Disallow root login remotely? [Y/n] y - ... Success! -Remove test database and access to it? [Y/n] y - - Dropping test database... - ... Success! - - Removing privileges on test database... - ... Success! -Reload privilege tables now? [Y/n] y - ... Success! -Cleaning up... -All done! -``` - -Load bropkg user and associated tables. Change BRO_USER_PASSWORD to -something suitable for the installation. - -``` -mysql -u root -p < secrets/database.sql -``` - -## Set up cronjob to read Zeek pkg info -Note: Change USERNAME@HOSTNAME.ORG to the email that should receive emails -about the output of the bro-pkg-web-updater script. Use of new Python 3 -versions is also possible, this example just happens to use 3.4. - -``` -sudo su -yum install python34-pip -pip-3.4 install zkg -python3 -m pip install https://github.com/zeek/zeek-package-ci/archive/master.zip -cp cronjob/bro-pkg-web-updater.php /usr/local/sbin/ -chmod 700 /usr/local/sbin/bro-pkg-web-updater.php -echo 'MAILTO=USERNAME@HOSTNAME.ORG -# Update to latest zkg -0 4 * * * root pip-3.4 install --upgrade zkg -# Read the list of Bro packages and update database at 4am daily -0 4 * * * root /usr/local/sbin/bro-pkg-web-updater.php' > \ -/etc/cron.d/bro-pkg-web.cron -exit -``` -Run the script at least once! ``` -sudo php /usr/local/sbin/bro-pkg-web-updater.php +docker exec -it zeek-pkg-web-php-1 /bin/bash +/etc/cron.daily/bro-pkg-web-cron.sh ```