Canopy - The next generation of stoner streaming software
Find a file
2025-10-22 21:20:07 -04:00
src Server now auto-magically nukes expired remember me tokens on startup and at midnight UTC. 2025-10-22 20:17:53 -04:00
www Video title now renders escaped entities properly. 2025-10-22 21:20:07 -04:00
.gitignore Started work on legacy account migration. 2025-10-09 03:50:05 -04:00
config.example.json Upgraded password hashing algo to argon2id. 2025-10-18 09:42:08 -04:00
config.example.jsonc Upgraded password hashing algo to argon2id. 2025-10-18 09:42:08 -04:00
defaultEmotes.json Added Endpoints and AJAX Helper Functions for emote management, as well as imporvements to link embedding. 2024-12-17 21:51:34 -05:00
defaultFlair.json Updated userSchema to store flair by reference 2024-12-03 06:21:43 -05:00
defaultTokes.json Fixed crash caused by connecting with deleted flair. 2025-04-15 05:59:43 -04:00
LICENSE Updated license file 2025-03-25 08:35:49 -04:00
nodemon.json Initial commit. 2024-11-15 17:44:03 -05:00
package.json Continued work on remember me tokens. 2025-10-20 07:49:41 -04:00
README.md readme 2025-10-22 20:49:30 -04:00

Canopy

0.4-INDEV

Canopy - /ˈkæ.nə.pi/:

  • The upper layer of foliage and branches of a forest, containing the majority of animal life.
  • An honest attempt at a freedom/privacy respecting, libre, and open-source refrence implementation of what a stoner streaming service can be.

Canopy is a community chat & synced video embedding web application, intended to replace fore.st as the server software for ourfore.st. This new codebase intends to solve the following issues with the current CyTube based software:

  • Unmaintained upstream codebase.
  • Different goals.
  • Different coding styles.
  • Obsolete Technology and Dependencies.
  • General Clunk
  • Less Unique Community Identity

Canopy is a simple node/express.js app, leveraging yt-dlp and the internet archive REST api for metadata gathering. Persistant storage is handled by mongodb, as it's document based nature inherintly works well for cleanly storing large config documents for user/channel settings, and the low use of inter-collection references within the canopy software. All hardcore security functions like server-side input sanatization, session handling, CSRF mitigation, and password hashing are handled by industry-standard open source libraries such as validator/express-validator, express-sessions, csrf-sync, and bcrypt, however it IS hobbiest software, and it should be treated as such.

The Canopy codebase does not, nor will it ever contain:

  • Advertisements (targetted or otherwise)
  • Proprietary Code
  • Cryptocurrency/Blockchain integration
  • 'Analytics/Telemtry' spyware
  • The use of video sources which require proprietary 'Digital Rights Management Ristricitons Malware' such as Widevine.
  • The use of large language models, stable diffusion, or generative AI in either development or function.

Thirdparty media providers may or may not contain all of the above atrocities :P (though browser-side DRM extensions will never be required), always use an ad-blocker!

Our current goal is to create a cleaner, more modern, purpose-built back-end that has feature-parity with the current version of fore.st, writing improvements where possible. Paired with this functionality, are a mix of engineering and artistic choices which attempt to re-create the power-user friendly UX of desktop sites from the early 2010's, with the 'aged like wine' looks that late oughts/early web 2.0 designs graced us with. Making sure that pageloads are low, and GPU use is non-existant along the way, to ensure everything is usable, even on low-end machines.

License

Canopy is written by the community, and provided under the GNU Affero General Public License v3 in order to prevent Canopy from being used in proprietary software or shitcoin scams.