You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Andrew Woodlee 1b7e9d645e
fix supervisord files
11 months ago
.vscode Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
app fix for post view count 11 months ago
client Merge remote-tracking branch 'dtp/master' 11 months ago
config Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
data/patches remove comments for deleted posts/pages 2 years ago
docker Docker integration; cleanup of config file names 2 years ago
docs Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
lib Merge remote-tracking branch 'dtp/master' 11 months ago
ssl Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 2 years ago
static Docker integration; cleanup of config file names 2 years ago
supervisord fix supervisord files 11 months ago
.dockerignore Docker integration; cleanup of config file names 2 years ago
.env.default Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
.env.docker.default correct Redis prefix and remove BitcoinAverage API key (defunct anyway) 2 years ago
.gitignore trigger pages and posts recording views only when published 1 year ago
.jshintrc migrate to the use of dtp-logan-api 1 year ago
Dockerfile Docker integration; cleanup of config file names 2 years ago
LICENSE catching up with progress from Sites and Soapbox 2 years ago
NOTES.md Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 2 years ago
README.md Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
deploy integrate updates from LibertyLinks engine enhancements; new features for blog 3 years ago
deploy-cybershell fix script 1 year ago
docker-build Docker integration; cleanup of config file names 2 years ago
docker-clean Docker integration; cleanup of config file names 2 years ago
docker-compose.yml Docker integration; cleanup of config file names 2 years ago
docker-console Docker integration; cleanup of config file names 2 years ago
docker-proxy Docker integration; cleanup of config file names 2 years ago
dtp-media-engine.js more component definition updates 1 year ago
dtp-sites-cli.js Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
dtp-sites.code-workspace catching up with progress from Sites and Soapbox 2 years ago
dtp-sites.js Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
gulpfile.js Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 2 years ago
iconImport.js cybershell-specific changes 2 years ago
package.json Merge remote-tracking branch 'dtp/master' 11 months ago
push build and deployment automation 3 years ago
release catching up with progress from Sites and Soapbox 2 years ago
restart-production small changes 2 years ago
start-local Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop 1 year ago
start-production fix supervisord files 11 months ago
stop-production fix supervisord files 11 months ago
thumbnail.png cybershell-specific changes 2 years ago
update-deps new update-deps.js and pinned-packages 2 years ago
update-deps.js more component definition updates 1 year ago
update-master small changes 2 years ago
yarn.lock Merge remote-tracking branch 'dtp/master' 11 months ago

README.md

DTP Sites

DTP Sites is an open source blogging platform built on Node.js and the DTP ecosystem.

Requirements

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 Build Tools (for mediasoup support)

apt-get -y install build-essential python3-pip

Host Preparation

The following commands must be exeucted on any host expected to run DTP Framework applications.

apt -y update && apt -y upgrade
apt -y install linux-headers-generic linux-headers-virtual linux-image-virtual linux-virtual
apt -y install build-essential ffmpeg supervisor

Install Data Tier Components

You will need MongoDB and MinIO installed and running before you can start DTP Sites web services.

  1. Install MongoDB
  2. Install MinIO

Install redis:

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 git@git.digitaltelepresence.com:digital-telepresence/dtp-sites.git

Install Required Dependencies

cd ~/live/dtp-sites
yarn

Generate SSL/TLS Certificate

cd ~/live/dtp-sites/ssl
./mkcert

Environment Configuration

On a new host or host image, copy .env.default to .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

  1. Make sure NODE_ENV is set to local
  2. Run ./start-local in a VS Code terminal, then rename that terminal to services.
  3. In a new VS Code terminal, run gulp and rename that terminal gulp.
  4. 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.

Software License

DTP Sites and the DTP Phoenix Engine and framework are licensed under the Apache 2.0 open source software license. See LICENSE for more information.