Doomsday Machine is a tool for backing up cloud services to a local machine. It syncs all content to a local directory in non-vendor-specific file formats. (Whenever possible, it opts for formats such as .html, .csv, etc.) It requires a MySQL database to store backup configurations and object metadata. All configuration data is encrypted at rest, but metadata is not. Also, all backup archives are encrypted at rest, but the backup work directory is not.
Checkout and Dependencies
Check out the code and install dependencies by running:
# git clone firstname.lastname@example.org:johnjones4/Doomsday-Machine.git # cd Doomsday-Machine # npm install
There are several configurations that must be set at runtime as environment variables. These should be set in a
.env file. The variables are:
- MYSQL_HOST: The location of the MySQL server.
- MYSQL_USER: The user used to connect to the MySQL server.
- MYSQL_PASSWORD: The password used to connect to the MySQL server.
- MYSQL_DATABASE: The schema to connect to on the MySQL server.
- MYSQL_PORT: The port to connect to on the MySQL server. Defaults to 3306.
- SECRET: The secret used to encode configurations and files.
- WORKING_DIRECTORY: The directory used to store working files and archives.
- BACKUP_INTERVAL: The interval to run the backup in milliseconds. Defaults to daily.
- ARCHIVE_RETENTION: The number of archives to retain following a backup.
- WEB_PORT: The port for the web server to listen for connections. Defaults to 8000.
- SITE_URL: The URL to the web server to redirect to from OAuth requests. Defaults to http://localhost:8000.
- AUTH_USERNAME: The username for HTTP authentication.
- AUTH_PASSWORD: The password for HTTP authentication.
- MAIL_HOST: SMTP host to connect to for sending email alerts.
- MAIL_PORT: SMTP port to connect to for sending email alerts.
- MAIL_SECURE: SMTP setting for secure connections.
- MAIL_USERNAME: SMTP username to connect to for sending email alerts.
- MAIL_PASSWORD: SMTP password to connect to for sending email alerts.
- MAIL_FROM: From address for sending email alerts.
- MAIL_TO: To address for sending email alerts.
To launch the application:
# node index.is
Icon created by Arthur Shlain from the Noun Project