||11 months ago|
|.vscode||11 months ago|
|app||11 months ago|
|client||11 months ago|
|config||11 months ago|
|data/patches||1 year ago|
|docker||1 year ago|
|docs||12 months ago|
|lib||11 months ago|
|ssl||12 months ago|
|static||1 year ago|
|supervisord||11 months ago|
|.dockerignore||1 year ago|
|.env.default||12 months ago|
|.env.docker.default||1 year ago|
|.gitignore||1 year ago|
|.jshintrc||2 years ago|
|Dockerfile||1 year ago|
|LICENSE||2 years ago|
|NOTES.md||1 year ago|
|README.md||1 year ago|
|deploy||2 years ago|
|docker-build||1 year ago|
|docker-clean||1 year ago|
|docker-compose.yml||1 year ago|
|docker-console||1 year ago|
|docker-proxy||1 year ago|
|dtp-sites-cli.js||1 year ago|
|dtp-sites.code-workspace||2 years ago|
|dtp-sites.js||11 months ago|
|gulpfile.js||12 months ago|
|package.json||11 months ago|
|push||2 years ago|
|release||2 years ago|
|restart-production||11 months ago|
|start-local||11 months ago|
|start-production||11 months ago|
|stop-production||11 months ago|
|update-deps||2 years ago|
|update-deps.js||1 year ago|
|yarn.lock||11 months ago|
DTP Sites is an open source blogging platform built on Node.js and the DTP ecosystem.
The only qualified operated system for hosting a DTP Sites suite is Ubuntu 20.04 LTS. It is acceptable to run it in a virtual machine for development and testing, but it should be run as close to bare metal as can be had for production environments.
Install Data Tier Components
You will need MongoDB and MinIO installed and running before you can start DTP Sites web services.
sudo apt-get install redis
Install Node Version Manager (NVM) and Node.js
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Resolve Global Node Dependencies
Yarn, Gulp, and Forever are required to be installed globally. This should be done once per developer workstation and repeated when updates are required.
nvm install --lts npm install -g yarn gulp forever
Preparing a Fresh Install
Clone the DTP Sites Repository
cd ~/live git clone email@example.com:digital-telepresence/dtp-sites.git
Install Required Dependencies
cd ~/live/dtp-sites yarn
Generate SSL/TLS Certificate
cd ~/live/dtp-sites/ssl ./mkcert
On a new host or host image, copy
.env and edit it as necessary.
For password salt and service passwords, the
uuidgen tool may be useful to help generate hard-to-guess passwords for use in a development environment. Something more sophisticated than a UUID should be used in production.
Starting DTP Sites In Development Mode
- Make sure
NODE_ENVis set to
./start-localin a VS Code terminal, then rename that terminal to
- In a new VS Code terminal, run
gulpand rename that terminal
- Open https://localhost:3000 in your web browser.
You can now make changes to program source code, and the environment will automatically respond, build, pack, and re-load things as needed depending on what you did and what's open/running.
DTP Sites is a multi-tier web hosting engine built on:
Production Environment Information
The only qualified operated system for hosting a DTP Sites suite is Ubuntu 20.04 LTS. It is acceptable to run it in a virtual machine for development and testing, but it should be run as close to bare metal as possible in production environments.
It's impossible to give 100% generic advice here, but it all depends on how large your audience is and how much they use your website. Larger, more active audiences will require a different kind of production server deployment than smaller and less active audiences.
Generally, it's possible to stack all components on one host and operate a fast site for small-to-medium audiences. The size of the host may vary, but it's possible to keep the system stacked and handle quite a large audience.
Beyond a point, you'll need to start isolating services away from each other. Storage will want it's own system(s), MongoDB will want it's own systems (plural), Redis will want it's own system(s), and the Node.js components can each start to want their own system(s).
Once you start scaling horizontally, the host requirements change a little. You will need two networks and network interfaces per host. The production network to handle public requests; and a management network for handling IPC and data-sharing among the hosts themselves.
Some useful links for learning more about hosting MinIO:
Redis simply has many different documents to describe it's many different features and their requirements. I'd like to give you a summary page link, but it doesn't exist. This is that summary page. These are those links.