A web application allowing people to create an account, configure a profile, and share a list of URLs on that profile.
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.
 
 
 
 
CyberShell cbbc6eff79 fixed spelling for googlebot content in app/views/layouts/main.pug 2 years ago
.vscode some cleanup 2 years ago
app fixed spelling for googlebot content in app/views/layouts/main.pug 2 years ago
client bringing some enhancements forward from DTP Sites 2 years ago
config switch links to a[href, onclick] 2 years ago
data/patches analytics: user profile visit stats 2 years ago
docs Newsletter wip 2 years ago
lib quick updates 2 years ago
ssl large, large import with a lot of...features 2 years ago
supervisord More post completeness; and a captcha for signup. 2 years ago
.env.default libertylinks starting 2 years ago
.gitignore Merge branch 'master' into develop 2 years ago
.jshintrc scaffolding 2 years ago
LICENSE large, large import with a lot of...features 2 years ago
NOTES.md Joe's notes 2 years ago
README.md changed to LibertyLinks 2 years ago
deploy web host deployment automation script 2 years ago
dtp-libertylinks-cli.js quick updates 2 years ago
dtp-libertylinks.code-workspace converted to dtp-libertylinks 2 years ago
dtp-libertylinks.js a lot of platform-level cleanup 2 years ago
gulpfile.js a lot of platform-level cleanup 2 years ago
package.json v0.4.38 2 years ago
release added remote release target 2 years ago
start-local Merge branch 'master' into develop 2 years ago
start-production production web app management scripts 2 years ago
stop-production fix for web app shutdown copy/paste bug 2 years ago
update-deps add Gab TV channel data fetch and service 2 years ago
yarn.lock a lot of platform-level cleanup 2 years ago

README.md

DTP Liberty Links

A web application allowing people to create an account, configure a profile, and share a list of URLs on that profile.

Requirements

The only qualified operating system for hosting a LibertyLinks instance 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.

You will need MongoDB, Redis, 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

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.

Install application dependencies by running Yarn. You should do this on initial install and after every update or git pull as dependencies do change often, become upgraded to new versions, receive security fixes, etc.

yarn
  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.

LibertyLinks is a multi-tier web hosting engine built on:

Production Environment Information

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

This software is based on the Digital Telepresence Platform (DTP) development suite.

The Digital Telepresence Platform Core, and LibertyLinks, are licensed under the Apache 2.0 open source software license. See LICENSE for more information.