====== Developer Workflow ====== work in progress, not final ===== General Overview ===== The dev server has the linux firewall enabled and only IPs that are on the list are allowed to connect to the server. There is a dev site that can be accessed at https://master.beacontechnology.com It is possible for the developer to make changes to dev and preview them without affecting production. Since the database is synced from prod to dev, work must be performed with this in mind. Static assets and generated content are not tracked in git, or pushed from dev to prod. This is taken into account in ''beaconsync.sh'' and ''beaconpublish.sh'' Code is to be modified, then when the code is in a state that you are ready to publish, commit work to the local dev repo, then run the ''beaconpublish.sh'' script with ''sudo''. The script will manage everything. ===== Making Changes ===== To make changes, ssh to ''username@dev.beacontechnology.com'' You should be automatically logged in as ''masterbeacon'' user. The website files are located at ''/home/masterbeacon/public_html'' Change the files as needed. When done and ready to publish, stage and commit all changes using ''git commit -a'' This will commit changes to the local repo. ===== Publishing Changes ===== To publish changes, just run ''sudo /root/scripts/beaconpublish.sh'' That script will do everything necessary to move changes from dev to prod. This involves invoking rsync and moving the files. Then it runs necessary commands on prod to get the files exposed for public_html ===== Syncing Database and Files ===== The database and static files are copied from prod to dev on a daily basis between 3AM and 4AM. The script also has some basic logic to manage having a set up backups of the database. To make the script run early, just run the command: ''sudo /root/scripts/beaconsync.sh''