diff --git a/.env.default b/.env.default index 1c40be4..32bea87 100644 --- a/.env.default +++ b/.env.default @@ -22,7 +22,7 @@ MAILGUN_DOMAIN= # MONGODB_HOST=localhost:27017 -MONGODB_DATABASE=dtp-sites +MONGODB_DATABASE=dtp-webapp # # Redis configuration @@ -39,7 +39,7 @@ REDIS_PASSWORD= MINIO_ENDPOINT=localhost MINIO_PORT=9000 MINIO_USE_SSL=disabled -MINIO_ACCESS_KEY=dtp-sites +MINIO_ACCESS_KEY=dtp-webapp MINIO_SECRET_KEY= MINIO_IMAGE_BUCKET=site-images MINIO_VIDEO_BUCKET=site-videos @@ -60,7 +60,7 @@ DTP_LOG_CONSOLE=enabled DTP_LOG_MONGODB=enabled DTP_LOG_FILE=enabled -DTP_LOG_FILE_PATH=/tmp/dtp-sites/logs +DTP_LOG_FILE_PATH=/tmp/dtp-webapp/logs DTP_LOG_FILE_NAME_APP=justjoeradio-app.log DTP_LOG_FILE_NAME_HTTP=justjoeradio-access.log diff --git a/.vscode/launch.json b/.vscode/launch.json index b41e9f1..f84c986 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,11 +7,11 @@ { "type": "pwa-node", "request": "launch", - "name": "web:dtp-sites", + "name": "web:dtp-webapp", "skipFiles": [ "/**" ], - "program": "${workspaceFolder:dtp-sites}/dtp-sites.js", + "program": "${workspaceFolder:dtp-base}/dtp-webapp.js", "console": "integratedTerminal", "env": { "HTTP_BIND_PORT": "3333" @@ -20,13 +20,13 @@ { "type": "pwa-node", "request": "launch", - "name": "cli:dtp-sites", + "name": "cli:dtp-webapp", "skipFiles": [ "/**" ], - "program": "${workspaceFolder:dtp-sites}/dtp-sites-cli.js", + "program": "${workspaceFolder:dtp-base}/dtp-webapp-cli.js", "console": "integratedTerminal", "args": ["--action=reset-indexes", "all"] } ] -} +} \ No newline at end of file diff --git a/LICENSE b/LICENSE index 5c06269..57a6f27 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright 2021 Digital Telepresence, LLC +Copyright 2022 DTP Technologies, LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -10,4 +10,4 @@ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and -limitations under the License. \ No newline at end of file +limitations under the License. diff --git a/NOTES.md b/NOTES.md index da8fc54..6609295 100644 --- a/NOTES.md +++ b/NOTES.md @@ -1,22 +1 @@ -Want to tune in live -Want chat - -Most Recent Episode -Featured Clips - -Replays -About -Contact Us -Forum - -Suggestion Box -- "I want to see [name] on the show as a guest" - -Merch Store -- T-shirt -- Hat -- Tumbler / coffee mug - -Opie & Anthony (Cumia) - -restream.io \ No newline at end of file +2022-03-03: Forked from dtp-sites to become new base for all DTP web apps \ No newline at end of file diff --git a/app/controllers/admin.js b/app/controllers/admin.js index 5fdc4e8..a2c696a 100644 --- a/app/controllers/admin.js +++ b/app/controllers/admin.js @@ -1,5 +1,5 @@ // admin.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/content-report.js b/app/controllers/admin/content-report.js index f15ad7f..61db82d 100644 --- a/app/controllers/admin/content-report.js +++ b/app/controllers/admin/content-report.js @@ -1,5 +1,5 @@ // admin/content-report.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/host.js b/app/controllers/admin/host.js index f6a945a..1322eda 100644 --- a/app/controllers/admin/host.js +++ b/app/controllers/admin/host.js @@ -1,5 +1,5 @@ // admin/host.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/job-queue.js b/app/controllers/admin/job-queue.js index bef0df6..7d25dac 100644 --- a/app/controllers/admin/job-queue.js +++ b/app/controllers/admin/job-queue.js @@ -1,5 +1,5 @@ // admin/job-queue.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/log.js b/app/controllers/admin/log.js index a6c9e56..f1cfc62 100644 --- a/app/controllers/admin/log.js +++ b/app/controllers/admin/log.js @@ -1,5 +1,5 @@ // admin/log.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/newsletter.js b/app/controllers/admin/newsletter.js index 78a8a05..721c48b 100644 --- a/app/controllers/admin/newsletter.js +++ b/app/controllers/admin/newsletter.js @@ -1,5 +1,5 @@ // admin/newsletter.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/page.js b/app/controllers/admin/page.js index 69c9299..e3562e4 100644 --- a/app/controllers/admin/page.js +++ b/app/controllers/admin/page.js @@ -1,5 +1,5 @@ // admin/page.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/post.js b/app/controllers/admin/post.js index 499271e..78f84f2 100644 --- a/app/controllers/admin/post.js +++ b/app/controllers/admin/post.js @@ -1,5 +1,5 @@ // admin/post.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/settings.js b/app/controllers/admin/settings.js index 1f6994f..94c51e0 100644 --- a/app/controllers/admin/settings.js +++ b/app/controllers/admin/settings.js @@ -1,5 +1,5 @@ // admin/settings.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/admin/user.js b/app/controllers/admin/user.js index 0b88d73..682247d 100644 --- a/app/controllers/admin/user.js +++ b/app/controllers/admin/user.js @@ -1,5 +1,5 @@ // admin/user.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/auth.js b/app/controllers/auth.js index 304a023..a032ec2 100644 --- a/app/controllers/auth.js +++ b/app/controllers/auth.js @@ -1,5 +1,5 @@ // auth.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/comment.js b/app/controllers/comment.js index 980e010..f93d309 100644 --- a/app/controllers/comment.js +++ b/app/controllers/comment.js @@ -1,5 +1,5 @@ // comment.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/content-report.js b/app/controllers/content-report.js index cc2e03c..b01b34c 100644 --- a/app/controllers/content-report.js +++ b/app/controllers/content-report.js @@ -1,5 +1,5 @@ // content-report.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/home.js b/app/controllers/home.js index 88067e2..94523d1 100644 --- a/app/controllers/home.js +++ b/app/controllers/home.js @@ -1,5 +1,5 @@ // home.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/image.js b/app/controllers/image.js index 4cd3a65..bafdb68 100644 --- a/app/controllers/image.js +++ b/app/controllers/image.js @@ -1,5 +1,5 @@ // page.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/manifest.js b/app/controllers/manifest.js index cbd83e5..5d2767a 100644 --- a/app/controllers/manifest.js +++ b/app/controllers/manifest.js @@ -1,5 +1,5 @@ // manifest.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/newsletter.js b/app/controllers/newsletter.js index 9924704..28bf9f9 100644 --- a/app/controllers/newsletter.js +++ b/app/controllers/newsletter.js @@ -1,5 +1,5 @@ // newsletter.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/page.js b/app/controllers/page.js index d8abf3b..7c236fb 100644 --- a/app/controllers/page.js +++ b/app/controllers/page.js @@ -1,5 +1,5 @@ // page.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/post.js b/app/controllers/post.js index b5c728e..546a33c 100644 --- a/app/controllers/post.js +++ b/app/controllers/post.js @@ -1,5 +1,5 @@ // post.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/user.js b/app/controllers/user.js index cd3494c..071b7c9 100644 --- a/app/controllers/user.js +++ b/app/controllers/user.js @@ -1,5 +1,5 @@ // user.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/controllers/welcome.js b/app/controllers/welcome.js index b77acb4..763456f 100644 --- a/app/controllers/welcome.js +++ b/app/controllers/welcome.js @@ -1,5 +1,5 @@ // welcome.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/category.js b/app/models/category.js index 33cba63..3466418 100644 --- a/app/models/category.js +++ b/app/models/category.js @@ -1,5 +1,5 @@ // category.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/chat-message.js b/app/models/chat-message.js index c0c3d54..2a3f47b 100644 --- a/app/models/chat-message.js +++ b/app/models/chat-message.js @@ -1,5 +1,5 @@ // chat-message.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License Apache-2.0 'use strict'; diff --git a/app/models/comment.js b/app/models/comment.js index bce3420..d9d93e5 100644 --- a/app/models/comment.js +++ b/app/models/comment.js @@ -1,5 +1,5 @@ // comment.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/connect-token.js b/app/models/connect-token.js index 12096cd..3a1b3b3 100644 --- a/app/models/connect-token.js +++ b/app/models/connect-token.js @@ -1,5 +1,5 @@ // connect-token.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/content-report.js b/app/models/content-report.js index 6423f18..fa6adad 100644 --- a/app/models/content-report.js +++ b/app/models/content-report.js @@ -1,5 +1,5 @@ // content-report.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/content-vote.js b/app/models/content-vote.js index 0cbe24a..490b098 100644 --- a/app/models/content-vote.js +++ b/app/models/content-vote.js @@ -1,5 +1,5 @@ // content-vote.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/csrf-token.js b/app/models/csrf-token.js index 6969ab3..81d75df 100644 --- a/app/models/csrf-token.js +++ b/app/models/csrf-token.js @@ -1,5 +1,5 @@ // csrf-token.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/email-blacklist.js b/app/models/email-blacklist.js index 230c8af..ff03a3a 100644 --- a/app/models/email-blacklist.js +++ b/app/models/email-blacklist.js @@ -1,5 +1,5 @@ // email-blacklist.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/email-body.js b/app/models/email-body.js index 3b973df..e8e3824 100644 --- a/app/models/email-body.js +++ b/app/models/email-body.js @@ -1,5 +1,5 @@ // email-body.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/email.js b/app/models/email.js index 6b8b446..f76bcae 100644 --- a/app/models/email.js +++ b/app/models/email.js @@ -1,5 +1,5 @@ // email.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/image.js b/app/models/image.js index 4ffe590..d31e6da 100644 --- a/app/models/image.js +++ b/app/models/image.js @@ -1,5 +1,5 @@ // image.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/lib/geo-types.js b/app/models/lib/geo-types.js index dd5cdce..4c09c83 100644 --- a/app/models/lib/geo-types.js +++ b/app/models/lib/geo-types.js @@ -1,5 +1,5 @@ // geo-types.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/lib/resource-stats.js b/app/models/lib/resource-stats.js index 6d4dce8..016644d 100644 --- a/app/models/lib/resource-stats.js +++ b/app/models/lib/resource-stats.js @@ -1,5 +1,5 @@ // lib/resource-stats.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/log.js b/app/models/log.js index b2220d7..8b25f15 100644 --- a/app/models/log.js +++ b/app/models/log.js @@ -1,5 +1,5 @@ // log.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/net-host-stats.js b/app/models/net-host-stats.js index fb295f8..084068e 100644 --- a/app/models/net-host-stats.js +++ b/app/models/net-host-stats.js @@ -1,5 +1,5 @@ // net-host-stats.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/net-host.js b/app/models/net-host.js index 5114493..0646b2e 100644 --- a/app/models/net-host.js +++ b/app/models/net-host.js @@ -1,5 +1,5 @@ // net-host.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/newsletter-recipient.js b/app/models/newsletter-recipient.js index d434029..8347b0c 100644 --- a/app/models/newsletter-recipient.js +++ b/app/models/newsletter-recipient.js @@ -1,5 +1,5 @@ // newsletter-recipient.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/newsletter.js b/app/models/newsletter.js index f1e8bdd..673a8ea 100644 --- a/app/models/newsletter.js +++ b/app/models/newsletter.js @@ -1,5 +1,5 @@ // newsletter.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/otp-account.js b/app/models/otp-account.js index 1b94a4b..fcaea75 100644 --- a/app/models/otp-account.js +++ b/app/models/otp-account.js @@ -1,5 +1,5 @@ // otp-account.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/page.js b/app/models/page.js index 705fb82..15d2e85 100644 --- a/app/models/page.js +++ b/app/models/page.js @@ -1,5 +1,5 @@ // page.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/post.js b/app/models/post.js index 750ec45..3529c15 100644 --- a/app/models/post.js +++ b/app/models/post.js @@ -1,5 +1,5 @@ // post.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/resource-view.js b/app/models/resource-view.js index 1f9f447..ec00268 100644 --- a/app/models/resource-view.js +++ b/app/models/resource-view.js @@ -1,5 +1,5 @@ // resource-view.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/resource-visit.js b/app/models/resource-visit.js index f0bbcc9..770ce64 100644 --- a/app/models/resource-visit.js +++ b/app/models/resource-visit.js @@ -1,5 +1,5 @@ // resource-visit.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/user-block.js b/app/models/user-block.js index 31e6505..2046267 100644 --- a/app/models/user-block.js +++ b/app/models/user-block.js @@ -1,5 +1,5 @@ // user-block.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/user-notification.js b/app/models/user-notification.js index 6d73366..5e38510 100644 --- a/app/models/user-notification.js +++ b/app/models/user-notification.js @@ -1,5 +1,5 @@ // user-notification.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/models/user.js b/app/models/user.js index a63dd69..c41e734 100644 --- a/app/models/user.js +++ b/app/models/user.js @@ -1,5 +1,5 @@ // user.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/cache.js b/app/services/cache.js index 8e22986..50186f2 100644 --- a/app/services/cache.js +++ b/app/services/cache.js @@ -1,5 +1,5 @@ // cache.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/chat.js b/app/services/chat.js index facb404..1734766 100644 --- a/app/services/chat.js +++ b/app/services/chat.js @@ -1,5 +1,5 @@ // chat.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/comment.js b/app/services/comment.js index 4189160..da0cc85 100644 --- a/app/services/comment.js +++ b/app/services/comment.js @@ -1,5 +1,5 @@ // comment.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/content-report.js b/app/services/content-report.js index ef432b5..b94c06b 100644 --- a/app/services/content-report.js +++ b/app/services/content-report.js @@ -1,5 +1,5 @@ // content-report.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/content-vote.js b/app/services/content-vote.js index e441365..df6948e 100644 --- a/app/services/content-vote.js +++ b/app/services/content-vote.js @@ -1,5 +1,5 @@ // content-vote.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/crypto.js b/app/services/crypto.js index dc89f9e..8e3568c 100644 --- a/app/services/crypto.js +++ b/app/services/crypto.js @@ -1,5 +1,5 @@ // crypto.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/csrf-token.js b/app/services/csrf-token.js index 273d513..08bba50 100644 --- a/app/services/csrf-token.js +++ b/app/services/csrf-token.js @@ -1,5 +1,5 @@ // csrf-token.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/display-engine.js b/app/services/display-engine.js index dcd95c3..ba725d4 100644 --- a/app/services/display-engine.js +++ b/app/services/display-engine.js @@ -1,5 +1,5 @@ // display-engine.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/email.js b/app/services/email.js index 13adde6..fef6d2b 100644 --- a/app/services/email.js +++ b/app/services/email.js @@ -1,5 +1,5 @@ // email.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/gab-tv.js b/app/services/gab-tv.js index 9e10fa1..1a9032f 100644 --- a/app/services/gab-tv.js +++ b/app/services/gab-tv.js @@ -1,5 +1,5 @@ // gab-tv.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/host-cache.js b/app/services/host-cache.js index b4143e5..ae60cd4 100644 --- a/app/services/host-cache.js +++ b/app/services/host-cache.js @@ -1,5 +1,5 @@ // host-cache.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/image.js b/app/services/image.js index dbb0f29..a7a99dd 100644 --- a/app/services/image.js +++ b/app/services/image.js @@ -1,5 +1,5 @@ // minio.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/job-queue.js b/app/services/job-queue.js index 7e7b323..19b9c6f 100644 --- a/app/services/job-queue.js +++ b/app/services/job-queue.js @@ -1,5 +1,5 @@ // job-queue.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/limiter.js b/app/services/limiter.js index b06d05c..6d51283 100644 --- a/app/services/limiter.js +++ b/app/services/limiter.js @@ -1,5 +1,5 @@ // limiter.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/log.js b/app/services/log.js index f6f5e57..039b4d0 100644 --- a/app/services/log.js +++ b/app/services/log.js @@ -1,5 +1,5 @@ // log.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/markdown.js b/app/services/markdown.js index ff21610..9e62441 100644 --- a/app/services/markdown.js +++ b/app/services/markdown.js @@ -1,5 +1,5 @@ // markdown.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/media.js b/app/services/media.js index 4d2b72a..0a58952 100644 --- a/app/services/media.js +++ b/app/services/media.js @@ -1,5 +1,5 @@ // article.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/minio.js b/app/services/minio.js index c5039a6..6d23a7e 100644 --- a/app/services/minio.js +++ b/app/services/minio.js @@ -1,5 +1,5 @@ // minio.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/newsletter.js b/app/services/newsletter.js index bcc4c89..270032a 100644 --- a/app/services/newsletter.js +++ b/app/services/newsletter.js @@ -1,5 +1,5 @@ // newsletter.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/otp-auth.js b/app/services/otp-auth.js index edad956..60731fd 100644 --- a/app/services/otp-auth.js +++ b/app/services/otp-auth.js @@ -1,5 +1,5 @@ // otp-auth.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/page.js b/app/services/page.js index 7c8b15a..a13bd60 100644 --- a/app/services/page.js +++ b/app/services/page.js @@ -1,5 +1,5 @@ // page.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/post.js b/app/services/post.js index c4f14ce..bb5edba 100644 --- a/app/services/post.js +++ b/app/services/post.js @@ -1,5 +1,5 @@ // post.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/resource.js b/app/services/resource.js index 7dc5196..a4f6d84 100644 --- a/app/services/resource.js +++ b/app/services/resource.js @@ -1,5 +1,5 @@ // resource.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/session.js b/app/services/session.js index 7c6f226..aafc4f6 100644 --- a/app/services/session.js +++ b/app/services/session.js @@ -1,5 +1,5 @@ // session.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/sms.js b/app/services/sms.js index a4d3bb2..f086adb 100644 --- a/app/services/sms.js +++ b/app/services/sms.js @@ -1,5 +1,5 @@ // sms.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/user-notification.js b/app/services/user-notification.js index bbdb6f3..9e15e71 100644 --- a/app/services/user-notification.js +++ b/app/services/user-notification.js @@ -1,5 +1,5 @@ // user-notification.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/services/user.js b/app/services/user.js index bd9cb22..8cac3b7 100644 --- a/app/services/user.js +++ b/app/services/user.js @@ -1,5 +1,5 @@ // user.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/app/workers/host-services.js b/app/workers/host-services.js index 19df254..99cb011 100644 --- a/app/workers/host-services.js +++ b/app/workers/host-services.js @@ -1,5 +1,5 @@ // host-services.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; @@ -585,6 +585,18 @@ module.expireNetHosts = async ( ) => { (async ( ) => { try { + process.on('unhandledRejection', (error, p) => { + module.log.error('Unhandled rejection', { + error: error, + promise: p, + stack: error.stack + }); + }); + + process.on('warning', (error) => { + module.log.alert('warning', { error }); + }); + process.once('SIGINT', async ( ) => { module.log.info('SIGINT received'); module.log.info('requesting shutdown...'); diff --git a/app/workers/newsletter.js b/app/workers/newsletter.js deleted file mode 100644 index 6fc3ee6..0000000 --- a/app/workers/newsletter.js +++ /dev/null @@ -1,113 +0,0 @@ -// newsletter.js -// Copyright (C) 2021 Digital Telepresence, LLC -// License: Apache-2.0 - -'use strict'; - -const DTP_COMPONENT_NAME = 'newsletter'; - -const path = require('path'); -require('dotenv').config({ path: path.resolve(__dirname, '..', '..', '.env') }); - -const mongoose = require('mongoose'); - -const { SitePlatform, SiteLog } = require(path.join(__dirname, '..', '..', 'lib', 'site-lib')); - -module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json')); -module.config = { - componentName: DTP_COMPONENT_NAME, - root: path.resolve(__dirname, '..', '..'), -}; - -module.log = new SiteLog(module, module.config.componentName); - -module.sendNewsletter = async (job) => { - - module.log.info('newsletter email job received', { data: job.data }); - - const NewsletterRecipient = mongoose.model('NewsletterRecipient'); - - try { - /* - * Create one Bull Queue job per email to be delivered. - */ - await NewsletterRecipient - .find({ 'flags.isVerified': true, 'flags.isOptIn': true, 'flags.isRejected': false }) - .lean() - .cursor() - .eachAsync(async (recipient) => { - try { - const jobData = { - newsletterId: job.data.newsletterId, - recipient: recipient.address, - }; - const jobOptions = { - attempts: 3, - }; - await module.jobQueue.add('email-send', jobData, jobOptions); - } catch (error) { - module.log.error('failed to create newsletter email job'); - // but continue - } - }, { parallel: 4 }); - } catch (error) { - module.log('failed to send newsletter', { newsletterId: job.data.newsletterId, error }); - throw error; // throw error to Bull so it can report in job reports - } -}; - -module.sendNewsletterEmail = async (job) => { - const { newsletter: newsletterService, email: emailService } = module.services; - const { newsletterId, recipient } = job.data; - try { - - let newsletter = module.newsletters[newsletterId]; - - if (!newsletter) { - newsletter = await newsletterService.getById(newsletterId); - module.newsletters[newsletterId] = newsletter; //TODO: clean up memory leak of newsletter (remove when all emails are sent) - } - - if (!newsletter) { - throw new Error('newsletter not found'); - } - - const response = await emailService.send({ - from: 'demo@wherever.com', - to: recipient, - subject: newsletter.title, - html: newsletter.content.html, - text: newsletter.content.text, - }); - - job.log(`newsletter email sent: ${response}`); - } catch (error) { - module.error('failed to send newsletter email', { newsletterId, recipient, error }); - throw error; // throw error to Bull so it can report in job reports - } -}; - -(async ( ) => { - try { - /* - * Platform startup - */ - await SitePlatform.startPlatform(module); - - const { jobQueue: jobQueueService } = module.services; - - module.jobQueue = await jobQueueService.getJobQueue('newsletter', { - attempts: 3, - }); - module.jobQueue.process('email', module.sendNewsletter); - module.jobQueue.process('email-send', module.sendNewsletterEmail); - - /* - * Worker startup - */ - module.log.info(`${module.pkg.name} v${module.pkg.version} Newsletter worker started`); - } catch (error) { - module.log.error('failed to start Newsletter worker', { error }); - process.exit(-1); - } -})(); \ No newline at end of file diff --git a/app/workers/reeeper.js b/app/workers/reeeper.js index cb4a91b..dacf7f9 100644 --- a/app/workers/reeeper.js +++ b/app/workers/reeeper.js @@ -1,5 +1,5 @@ // host-services.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; @@ -46,11 +46,23 @@ module.expireCrashedHosts = async ( ) => { (async ( ) => { try { + process.on('unhandledRejection', (error, p) => { + module.log.error('Unhandled rejection', { + error: error, + promise: p, + stack: error.stack + }); + }); + + process.on('warning', (error) => { + module.log.alert('warning', { error }); + }); + process.once('SIGINT', async ( ) => { module.log.info('SIGINT received'); module.log.info('requesting shutdown...'); - const exitCode = await SitePlatform.shutdown(); + process.nextTick(( ) => { process.exit(exitCode); }); diff --git a/client/js/index-admin.js b/client/js/index-admin.js index fe110ed..1f2b8e2 100644 --- a/client/js/index-admin.js +++ b/client/js/index-admin.js @@ -1,5 +1,5 @@ // index-admin.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/client/js/index.js b/client/js/index.js index e990812..a053a12 100644 --- a/client/js/index.js +++ b/client/js/index.js @@ -1,5 +1,5 @@ // index.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/client/js/site-admin-host-stats-app.js b/client/js/site-admin-host-stats-app.js index 633f119..d93f311 100644 --- a/client/js/site-admin-host-stats-app.js +++ b/client/js/site-admin-host-stats-app.js @@ -1,5 +1,5 @@ // dtp-site-app.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/client/js/site-app.js b/client/js/site-app.js index 0115d67..51f3cd4 100644 --- a/client/js/site-app.js +++ b/client/js/site-app.js @@ -1,5 +1,5 @@ // site-app.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/client/less/site/site-home.less b/client/less/site/site-home.less deleted file mode 100644 index e69de29..0000000 diff --git a/client/less/style.less b/client/less/style.less index c7c81a1..be13fad 100644 --- a/client/less/style.less +++ b/client/less/style.less @@ -15,7 +15,6 @@ @import "site/dashboard.less"; @import "site/site.less"; -@import "site/site-home.less"; @import "site/form.less"; @import "site/button.less"; diff --git a/config/job-queues.js b/config/job-queues.js index 1f814ec..7c5dc58 100644 --- a/config/job-queues.js +++ b/config/job-queues.js @@ -1,11 +1,11 @@ // job-queues.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; module.exports = { - // 'dvr-ingest': { + // 'queue-name': { // attempts: 3, // }, }; \ No newline at end of file diff --git a/config/limiter.js b/config/limiter.js index 8cab4e7..3661cc7 100644 --- a/config/limiter.js +++ b/config/limiter.js @@ -1,5 +1,5 @@ // limiter.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/config/site.js b/config/site.js new file mode 100644 index 0000000..a44e42a --- /dev/null +++ b/config/site.js @@ -0,0 +1,13 @@ +// site.js +// Copyright (C) 2022 DTP Technologies, LLC +// License: Apache 2.0 + +'use strict'; + +module.exports = { + name: process.env.DTP_SITE_NAME, + description: process.env.DTP_SITE_DESCRIPTION, + domain: process.env.DTP_SITE_DOMAIN, + domainKey: process.env.DTP_SITE_DOMAIN_KEY, + company: process.env.DTP_SITE_COMPANY || 'Digital Telepresence, LLC', +}; \ No newline at end of file diff --git a/docs/services.md b/docs/services.md index d69d9b5..2cb68c6 100644 --- a/docs/services.md +++ b/docs/services.md @@ -1,4 +1,4 @@ -# DTP Sites: Services +# DTP Base: Services Services are common logic implemented in a centralized location made accessible to the rest of the application to perform tasks in a common way. They live in [app/services](app/services), and are scripts that export a specific structure that identifies the service and provides a way to create, start, and stop them. diff --git a/dtp-sites.code-workspace b/dtp-base.code-workspace similarity index 100% rename from dtp-sites.code-workspace rename to dtp-base.code-workspace diff --git a/dtp-sites-cli.js b/dtp-webapp-cli.js similarity index 66% rename from dtp-sites-cli.js rename to dtp-webapp-cli.js index b77f9af..56d09bf 100644 --- a/dtp-sites-cli.js +++ b/dtp-webapp-cli.js @@ -1,9 +1,11 @@ -// dtp-sites-cli.js -// Copyright (C) 2021 Digital Telepresence, LLC +// dtp-webapp-cli.js +// Copryright (C) DTP Technologies, LLC // License: Apache-2.0 'use strict'; +const DTP_COMPONENT_NAME = 'webapp-cli'; + require('dotenv').config(); const path = require('path'); @@ -16,17 +18,12 @@ const { SiteLog, } = require(path.join(__dirname, 'lib', 'site-lib')); -module.pkg = require(path.join(__dirname, 'package.json')); +module.rootPath = __dirname; +module.pkg = require(path.join(module.rootPath, 'package.json')); module.config = { - componentName: 'sites-cli', - root: __dirname, - site: { - name: process.env.DTP_SITE_NAME, - description: process.env.DTP_SITE_DESCRIPTION, - domain: process.env.DTP_SITE_DOMAIN, - domainKey: process.env.DTP_SITE_DOMAIN_KEY, - company: process.env.DTP_SITE_COMPANY || 'Digital Telepresence, LLC', - }, + componentName: DTP_COMPONENT_NAME, + root: module.rootPath, + site: require(path.join(module.rootPath, 'config', 'site')), }; module.log = new SiteLog(module, module.config.componentName); @@ -79,12 +76,6 @@ module.revokePermission = async (target, permission) => { } }; -module.dvrIngest = async (episodeId) => { - const jobQueue = module.services.jobQueue.getJobQueue('dvr-ingest', module.config.jobQueues['dvr-ingest']); - const job = await jobQueue.add({ episodeId }); - module.log.info('job created', { id: job.id }); -}; - module.deleteOtpAccount = async (target) => { const { otpAuth: otpAuthService } = module.services; const User = mongoose.model('User'); @@ -116,6 +107,67 @@ module.resetIndexes = async ( ) => { } }; +module.resetPassword = async (username) => { + const { user: userService } = module.services; + const User = mongoose.model('User'); + + const user = await User + .findOne({ + username_lc: username.trim().toLowerCase(), + }) + .lean(); + + if (!user) { + throw new Error('user not found'); + } + + const password = generatePassword(8, true); + module.log.info('updating user password', { username, password }); + await userService.updatePassword(user, password); +}; + +module.sendWelcomeEmail = async (username) => { + const User = mongoose.model('User'); + + if (username === 'all') { + await User + .find() + .select('+flags +optIn') + .cursor() + .eachAsync(module.sendUserWelcomeEmail, 4); + } else { + const user = await User + .findOne({ + username_lc: username.trim().toLowerCase(), + }) + .select('+flags +optIn') + .lean(); + if (!user) { + throw new Error('user not found'); + } + await module.sendUserWelcomeEmail(user); + } +}; + +module.sendUserWelcomeEmail = async (user) => { + const { user: userService } = module.services; + + if (user.flags.isEmailVerified) { + module.log.alert('user is email-verified (aboring welcome email)', { + user: user._id, + username: user.username, + }); + return; + } + + module.log.info('sending welcome email', { + user: user._id, + username: user.username, + email: user.email, + }); + await userService.sendWelcomeEmail(user); +}; + /* * SERVER INIT */ @@ -130,21 +182,21 @@ module.resetIndexes = async ( ) => { short: 'a', type: 'string', description: 'The action to perform', - example: 'sites-cli --action=grant --permission=moderator email email ...', + example: 'dtp-webapp-cli --action=grant --permission=moderator email email ...', }, { name: 'permission', short: 'p', type: 'string', description: 'The permission(s) being added or removed', - example: 'sites-cli --action=grant --permission=admin email email ...' + example: 'dtp-webapp-cli --action=grant --permission=admin email email ...' }, ]); try { await SitePlatform.startPlatform(module); } catch (error) { - module.log.error('failed to start DTP Sites platform', { error }); + module.log.error(`failed to start DTP ${DTP_COMPONENT_NAME} platform`, { error }); return; } @@ -162,10 +214,6 @@ module.resetIndexes = async ( ) => { await module.revokePermission(target, module.app.options.permission); break; - case 'dvr-ingest': - await module.dvrIngest(target); - break; - case 'make-bucket': await module.makeBucket(target); break; @@ -174,10 +222,18 @@ module.resetIndexes = async ( ) => { await module.deleteOtpAccount(target); break; + case 'reset-password': + await module.resetPassword(target); + break; + case 'reset-indexes': await module.resetIndexes(); break; + case 'welcome-email': + await module.sendWelcomeEmail(target); + break; + default: throw new Error(`invalid action: ${module.app.options.action}`); } diff --git a/dtp-sites.js b/dtp-webapp.js similarity index 70% rename from dtp-sites.js rename to dtp-webapp.js index 2deef8e..4597acc 100644 --- a/dtp-sites.js +++ b/dtp-webapp.js @@ -1,26 +1,23 @@ -// dtp-sites.js -// Copryright (C) Digital Telepresence, LLC +// dtp-webapp.js +// Copryright (C) DTP Technologies, LLC // Licence: Apache-2.0 'use strict'; +const DTP_COMPONENT_NAME = 'webapp'; + require('dotenv').config(); const path = require('path'); const { SitePlatform, SiteLog } = require(path.join(__dirname, 'lib', 'site-lib')); -module.pkg = require(path.join(__dirname, 'package.json')); +module.rootPath = __dirname; +module.pkg = require(path.join(module.rootPath, 'package.json')); module.config = { - componentName: 'sites', - root: __dirname, - site: { - name: process.env.DTP_SITE_NAME, - description: process.env.DTP_SITE_DESCRIPTION, - domain: process.env.DTP_SITE_DOMAIN, - domainKey: process.env.DTP_SITE_DOMAIN_KEY, - company: process.env.DTP_SITE_COMPANY || 'Digital Telepresence, LLC', - }, + componentName: DTP_COMPONENT_NAME, + root: module.rootPath, + site: require(path.join(module.rootPath, 'config', 'site')), http: { address: process.env.HTTP_BIND_ADDRESS, port: parseInt(process.env.HTTP_BIND_PORT, 10), @@ -29,6 +26,10 @@ module.config = { module.log = new SiteLog(module, module.config.componentName); +module.shutdown = async ( ) => { + +}; + (async ( ) => { process.on('unhandledRejection', (error, p) => { @@ -46,6 +47,7 @@ module.log = new SiteLog(module, module.config.componentName); process.once('SIGINT', async ( ) => { module.log.info('SIGINT received'); module.log.info('requesting shutdown...'); + await module.shutdown(); const exitCode = await SitePlatform.shutdown(); process.nextTick(( ) => { process.exit(exitCode); @@ -61,7 +63,7 @@ module.log = new SiteLog(module, module.config.componentName); await SitePlatform.startPlatform(module); await SitePlatform.startWebServer(module); } catch (error) { - module.log.error('failed to start DTP Sites web server', { error }); + module.log.error(`failed to start DTP ${DTP_COMPONENT_NAME}`, { error }); process.exit(-1); } diff --git a/lib/client/js/dtp-app.js b/lib/client/js/dtp-app.js index 5835453..ffa9397 100644 --- a/lib/client/js/dtp-app.js +++ b/lib/client/js/dtp-app.js @@ -1,5 +1,5 @@ // dtp-app.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/client/js/dtp-display-engine.js b/lib/client/js/dtp-display-engine.js index b0fc9dd..27d922a 100644 --- a/lib/client/js/dtp-display-engine.js +++ b/lib/client/js/dtp-display-engine.js @@ -1,5 +1,5 @@ // dtp-display-engine.js -// Copyright (C) 2021 Digital Telepresence, Inc. +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/client/js/dtp-log.js b/lib/client/js/dtp-log.js index 8434b33..acea612 100644 --- a/lib/client/js/dtp-log.js +++ b/lib/client/js/dtp-log.js @@ -1,5 +1,5 @@ // dtpweb-log.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/client/js/dtp-plugin.js b/lib/client/js/dtp-plugin.js index 474b65a..c395411 100644 --- a/lib/client/js/dtp-plugin.js +++ b/lib/client/js/dtp-plugin.js @@ -1,5 +1,5 @@ // dtp-plugin.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 /** diff --git a/lib/client/js/dtp-socket.js b/lib/client/js/dtp-socket.js index 809252f..b0e1984 100644 --- a/lib/client/js/dtp-socket.js +++ b/lib/client/js/dtp-socket.js @@ -1,5 +1,5 @@ // dtpweb-socket.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-async.js b/lib/site-async.js index 582e636..2a1af76 100644 --- a/lib/site-async.js +++ b/lib/site-async.js @@ -1,5 +1,5 @@ // site-async.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-common.js b/lib/site-common.js index 1438cd4..4b5e822 100644 --- a/lib/site-common.js +++ b/lib/site-common.js @@ -1,5 +1,5 @@ // site-common.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-controller.js b/lib/site-controller.js index 84196d4..1b0b725 100644 --- a/lib/site-controller.js +++ b/lib/site-controller.js @@ -1,5 +1,5 @@ // site-controller.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-error.js b/lib/site-error.js index 6601839..521b3d4 100644 --- a/lib/site-error.js +++ b/lib/site-error.js @@ -1,5 +1,5 @@ // site-error.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-ioserver.js b/lib/site-ioserver.js index d62c72b..6cfeb66 100644 --- a/lib/site-ioserver.js +++ b/lib/site-ioserver.js @@ -1,5 +1,5 @@ // site-ioserver.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-lib.js b/lib/site-lib.js index 54cda91..882b531 100644 --- a/lib/site-lib.js +++ b/lib/site-lib.js @@ -1,5 +1,5 @@ // site-lib.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-log.js b/lib/site-log.js index 825721e..f894db0 100644 --- a/lib/site-log.js +++ b/lib/site-log.js @@ -1,5 +1,5 @@ // site-log.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-platform.js b/lib/site-platform.js index 1bed423..569814d 100644 --- a/lib/site-platform.js +++ b/lib/site-platform.js @@ -1,5 +1,5 @@ // site-platform.js -// Copyright (C) 2021 Digital Telepresence, LLC. +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/lib/site-service.js b/lib/site-service.js index 16fb463..542089c 100644 --- a/lib/site-service.js +++ b/lib/site-service.js @@ -1,5 +1,5 @@ // site-service.js -// Copyright (C) 2021 Digital Telepresence, LLC +// Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; diff --git a/package.json b/package.json index bcaefd6..838e8e7 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "dtp-sites", - "version": "0.2.14", - "description": "Open source blogging engine for the Digital Telepresence Platform.", - "main": "dtp-sites.js", - "author": "Digital Telepresence, LLC", + "name": "dtp-base", + "version": "0.1.0", + "description": "Open source web app engine for the Digital Telepresence Platform.", + "main": "dtp-webapp.js", + "author": "DTP Technologies, LLC", "license": "Apache-2.0", "private": true, "scripts": { - "start": "node dtp-sites.js", - "dev": "nodemon dtp-sites.js" + "start": "node dtp-webapp.js", + "dev": "nodemon dtp-webapp.js" }, "dependencies": { "@fortawesome/fontawesome-free": "^5.15.4", @@ -92,4 +92,4 @@ "webpack-stream": "^7.0.0", "workbox-webpack-plugin": "^6.4.2" } -} +} \ No newline at end of file diff --git a/release b/release index 0920766..759e74d 100755 --- a/release +++ b/release @@ -20,4 +20,4 @@ git checkout master git pull . develop git push "$2" master -git checkout develop +git checkout develop \ No newline at end of file diff --git a/ssl/mkcert b/ssl/mkcert index dc60564..091f3f4 100755 --- a/ssl/mkcert +++ b/ssl/mkcert @@ -1,7 +1,7 @@ #!/bin/bash -openssl genrsa -out dtp-sites.key -openssl req -new -out dtp-sites.csr -key dtp-sites.key -config openssl.cnf -openssl x509 -req -days 3650 -in dtp-sites.csr -signkey dtp-sites.key -out dtp-sites.crt -extensions v3_req -extfile openssl.cnf +openssl genrsa -out dtp-webapp.key +openssl req -new -out dtp-webapp.csr -key dtp-webapp.key -config openssl.cnf +openssl x509 -req -days 3650 -in dtp-webapp.csr -signkey dtp-webapp.key -out dtp-webapp.crt -extensions v3_req -extfile openssl.cnf -rm dtp-sites.csr \ No newline at end of file +rm dtp-webapp.csr \ No newline at end of file diff --git a/ssl/openssl.cnf b/ssl/openssl.cnf index 756f0d2..d09b85a 100644 --- a/ssl/openssl.cnf +++ b/ssl/openssl.cnf @@ -9,8 +9,8 @@ stateOrProvinceName = Pennsylvania stateOrProvinceName_default = Pennsylvania localityName = Pittsburgh localityName_default = Pittsburgh -organizationalUnitName = Digital Telepresence, LLC -organizationalUnitName_default = Digital Telepresence, LLC +organizationalUnitName = DTP Technologies, LLC +organizationalUnitName_default = DTP Technologies, LLC commonName = *.digitaltelepresence.com commonName_max = 64 diff --git a/start-local b/start-local index 2af3553..7a3d4dd 100755 --- a/start-local +++ b/start-local @@ -1,11 +1,13 @@ #!/bin/bash -MINIO_ROOT_USER="sites" -MINIO_ROOT_PASSWORD="1f1c7c9b-b833-4462-ae41-d56f52faa49c" +MINIO_ROOT_USER="base" +MINIO_ROOT_PASSWORD="302888b9-c3d8-40f5-92de-6a3c57186af5" export MINIO_ROOT_USER MINIO_ROOT_PASSWORD forever start --killSignal=SIGINT app/workers/host-services.js +forever start --killSignal=SIGINT app/workers/reeeper.js minio server ./data/minio --console-address ":9001" +forever stop app/workers/reeeper.js forever stop app/workers/host-services.js \ No newline at end of file diff --git a/supervisord/dtp-sites.conf b/supervisord/dtp-sites.conf deleted file mode 100644 index 2df7a0b..0000000 --- a/supervisord/dtp-sites.conf +++ /dev/null @@ -1,13 +0,0 @@ -[program:dtp-sites] -numprocs=1 -process_name=%(program_name)s_%(process_num)02d -command=/home/dtp/.nvm/versions/node/v16.13.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 dtp-sites.js -directory=/home/dtp/live/dtp-sites -autostart=true -autorestart=true -startretries=3 -stopsignal=INT -stderr_logfile=/var/log/dtp-sites/dtp-sites.err.log -stdout_logfile=/var/log/dtp-sites/dtp-sites.out.log -user=dtp -environment=HOME='/home/dtp/live/dtp-sites',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=dtp-sites \ No newline at end of file diff --git a/supervisord/dtp-webapp.conf b/supervisord/dtp-webapp.conf new file mode 100644 index 0000000..08e1971 --- /dev/null +++ b/supervisord/dtp-webapp.conf @@ -0,0 +1,13 @@ +[program:dtp-webapp] +numprocs=1 +process_name=%(program_name)s_%(process_num)02d +command=/home/dtp/.nvm/versions/node/v16.13.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 dtp-webapp.js +directory=/home/dtp/live/dtp-webapp +autostart=true +autorestart=true +startretries=3 +stopsignal=INT +stderr_logfile=/var/log/dtp-webapp/dtp-webapp.err.log +stdout_logfile=/var/log/dtp-webapp/dtp-webapp.out.log +user=dtp +environment=HOME='/home/dtp/live/dtp-webapp',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=dtp-webapp \ No newline at end of file diff --git a/supervisord/host-services.conf b/supervisord/host-services.conf index ef11c57..1be12d6 100644 --- a/supervisord/host-services.conf +++ b/supervisord/host-services.conf @@ -2,12 +2,12 @@ numprocs=1 process_name=%(program_name)s_%(process_num)02d command=/home/dtp/.nvm/versions/node/v16.13.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 app/workers/host-services.js -directory=/home/dtp/live/dtp-sites +directory=/home/dtp/live/dtp-webapp autostart=true autorestart=true startretries=3 stopsignal=INT -stderr_logfile=/var/log/dtp-sites/host-services.err.log -stdout_logfile=/var/log/dtp-sites/host-services.out.log +stderr_logfile=/var/log/dtp-webapp/host-services.err.log +stdout_logfile=/var/log/dtp-webapp/host-services.out.log user=dtp -environment=HOME='/home/dtp/live/dtp-sites',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=host-services \ No newline at end of file +environment=HOME='/home/dtp/live/dtp-webapp',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=host-services \ No newline at end of file