Implemented a shared base HTML template to DRY up the markup across the service’s various pages, including the index, legal, privacy, and terms pages. This centralizes common elements like headers, footers, and imports, facilitating easier updates and consistency in design across the platform. Existing content from these individual pages is now extending the base template, adhering to best practices in templating and reducing code duplication.
Simplified the "services.json" by updating the primary link name and URL for a privacy-focused service and removing the associated Tor (.onion) alternative.
Adjust the dropdown button's color in the index page to reflect service status dynamically. Buttons now show as 'btn-primary' when the service is operational ('OK') and 'btn-danger' when it isn't, improving visual feedback for users.
Simplified the routing and handling directives in the Caddyfile by removing explicit regular expressions for HTML files and reorganizing asset handling. All requests are now served with a more generalized approach, improving readability and potential maintainability of the server configuration. This change encapsulates asset file serving and reverse proxying under specific handles, ensuring a cleaner and more structured configuration.
Changed the HTML reverse proxy in the Caddy server configuration to use a Unix socket connection. This enhances security and performance by avoiding TCP stack overhead and protects against network-based attacks targeting the application server interface. This should only affect internal communication with the uWSGI server.
Refactored the website to serve dynamic content using Flask, replacing static HTML pages. This allows for the centralized management of service data through a JSON file. Optimizations include:
- Added a .gitignore file to exclude Python and Flask-specific temporary files.
- Migrated static assets into an organized directory structure to facilitate Flask's static file serving.
- Removed redundant HTML files and created Flask template versions with dynamic content rendering.
- Introduced Caddy server configuration for the new Flask architecture, including headers for security and CORS policy, and reverse proxy settings for route handling.
With these changes, website maintenance and updates are simplified, allowing for service information to be updated in a single location (`services.json`), which then propagates to the user-facing pages automatically.
Switched all asset references to absolute URLs to ensure consistent resource loading, especially when the website is accessed from different subpaths. This change resolves the issue with relative paths causing resources to fail to load on pages outside of the root directory. It enhances reliability and user experience across the site.
Moved and updated the Invidious service card in the list of services to flag it as currently non-operational, now featuring a warning description and a more attention-grabbing 'btn-danger' class to alert users to the service disruption.
Introduced Mastodon as a new service in the offerings section on the homepage. Two instances, skrt.social and cuddly.space, are now prominently displayed with brief descriptions and calls-to-action, expanding our social network presence and giving users more options for decentralized communication.
Correct the name of the metasearch engine from "LibreX" to "LibreY" in the paragraph describing its features on the index.html page. This change aligns the displayed name with the actual product name, ensuring accuracy and consistency. This fix enhances user understanding and prevents confusion. No issues are associated with this commit.
This change adds the LibreY service to the homepage. The LibreY service is an open-source, privacy-friendly metasearch engine that allows users to search for web, image, video, torrents, and more, including onion sites. Its inclusion provides users with an additional search option.
No issue reference.
This commit includes the addition of the Rallly service to the index.html file. Rallly is a free collaborative scheduling service similar to Doodle. It allows users to create polls and vote on them.