{"id":13554221,"url":"https://github.com/tosdr/Frontpage","last_synced_at":"2025-04-03T06:31:17.169Z","repository":{"id":43035754,"uuid":"308922419","full_name":"tosdr/Frontpage","owner":"tosdr","description":"Dynamic ToS;DR CMS, used in our frontpage","archived":false,"fork":false,"pushed_at":"2023-12-07T20:32:49.000Z","size":42948,"stargazers_count":50,"open_issues_count":30,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-30T00:55:02.393Z","etag":null,"topics":["crisp","database","phoenix","themes","tosdr"],"latest_commit_sha":null,"homepage":"https://tosdr.org","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tosdr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"justinback","open_collective":"tosdr"}},"created_at":"2020-10-31T16:20:17.000Z","updated_at":"2024-09-10T04:50:40.000Z","dependencies_parsed_at":"2023-01-30T23:31:09.107Z","dependency_job_id":"f39abad2-3ac3-457b-9673-77ebbe17ef38","html_url":"https://github.com/tosdr/Frontpage","commit_stats":{"total_commits":1185,"total_committers":26,"mean_commits":45.57692307692308,"dds":0.5392405063291139,"last_synced_commit":"698d6773f1d31333b08e33aa65ef832b96045dac"},"previous_names":["tosdr/frontpage","tosdr/crispcms"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosdr%2FFrontpage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosdr%2FFrontpage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosdr%2FFrontpage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosdr%2FFrontpage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tosdr","download_url":"https://codeload.github.com/tosdr/Frontpage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246202282,"owners_count":20739923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crisp","database","phoenix","themes","tosdr"],"created_at":"2024-08-01T12:02:42.494Z","updated_at":"2025-04-03T06:31:17.151Z","avatar_url":"https://github.com/tosdr.png","language":"PHP","funding_links":["https://github.com/sponsors/justinback","https://opencollective.com/tosdr"],"categories":["PHP"],"sub_categories":[],"readme":"# CrispCMS - The new ToS;DR Frontpage\n\n\n\u003e [!IMPORTANT]\n\u003e This repository is EOL and no longer maintained. We are beginning to phase it out and looking to replace it with our new Go implmentation. Thank you for all the support and contributions!\n\n## Code Freeze in Place until other major work is done (API, Browser Extensions, etc.)\n\n\n\u003c!--suppress HtmlDeprecatedAttribute --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tosdr.org/en/service/596\" title=\"Privacy Grade\"\u003e\n    \u003cimg alt=\"ToS;DR Privacy Shield\" src=\"https://shields.tosdr.org/tosdr.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/tosdr\" title=\"Join the Discord chat at https://discord.gg/tosdr\"\u003e\n    \u003cimg alt=\"Discord Member count\" src=\"https://img.shields.io/discord/324969783508467715.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://translate.tosdr.org/engage/crispcms/\" title=\"Translations\"\u003e\n    \u003cimg alt=\"Translation Status\" src=\"https://translate.tosdr.org/widgets/crispcms/-/svg-badge.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/tosdr/CrispCMS/releases/latest\" title=\"GitHub release\"\u003e\n    \u003cimg alt=\"Release\" src=\"https://img.shields.io/github/release/tosdr/CrispCMS.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/tosdr\" title=\"Become a backer/sponsor of ToS;DR\"\u003e\n    \u003cimg alt=\"Opencollective\" src=\"https://opencollective.com/tosdr/tiers/backers/badge.svg?label=backers\u0026color=brightgreen\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/GPL-3.0\" title=\"License: GPL-3.0\"\u003e\n    \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-GPL%203.0-blue.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://ci.tosdr.org/tosdr/CrispCMS\" title=\"Build Status\"\u003e\n    \u003cimg alt=\"CI\" src=\"https://ci.tosdr.org/api/badges/tosdr/CrispCMS/status.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg alt=\"ToS;DR Logo\" src=\"https://tosdr-branding.s3.eu-west-2.jbcdn.net/tosdr-logo-128-w.svg\"\u003e\n\u003c/p\u003e\nWelcome to the official repository for our frontpage, [tosdr.org](https://tosdr.org/).\nThis is a redo of our previous frontpage, which used JS.\n\nIf you wish to contribute, please check our [Code of Conduct](https://github.com/tosdr/CrispCMS/blob/master/CODE_OF_CONDUCT.md) before anything else.\n\n_This readme is still a **Work in Progress**, but should cover basic requirements to install._\n\n# Table of Contents\n\n1. [Requirements](#requirements)\n2. [Installation](#installation)\n  * [Composer Dependencies](#installing-composer-dependencies)\n3. [Configuring Crisp](#configuring-crisp)\n  * [Running Database Migrations](#running-database-migrations)\n4. [Plugins](#plugins)\n\n## Requirements\n\nYou will need these requirements to run your instance of Crisp.\n\n### [Redis Server](https://redis.io/)\n\nThis is used to cache [Phoenix](https://edit.tosdr.org/) requests.\n\n### Postgres\nThis is used for running the Crisp database.\n\n- To install on Debian-based Distros, run:\n\n```bash\n$ sudo apt-get update\n$ sudo apt-get install postgresql     # Accept the installation.\n```\n\n\n### Apache vs Nginx\n\nApache is no longer supported. Use NGINX instead.\n\n#### Nginx\n\nFrontpage config:\n```nginx\nserver {\n    server_name tosdr.org;\n\n    root   PATH_TO_YOUR_GITHUB_REPO;\n    index  index.php index.html index.htm;\n\n    location ~ /\\. {\n        deny all;\n    }\n\n    location / {\n        try_files $uri /index.php?route=$uri$is_args$args;\n        if ($request_uri ~ ^/(.*)\\.html$) {\n            return 302 /$1;\n        }\n    }\n\n    location ~ \\.php$ {\n        fastcgi_split_path_info ^(.+\\.php)(/.+)$;\n        fastcgi_pass   unix:/var/run/php/php7.4-fpm.sock;\n        fastcgi_index  index.php;\n        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include        fastcgi_params;\n    }\n\n    listen 80 default_server;\n}\n```\n\nAPI Config:\n```nginx\nserver {\n    server_name api.tosdr.org;\n\n    location ~ /\\. {\n        deny all;\n    }\n\n    location / {\n        try_files $uri /index.php?route=$uri$is_args$args;\n        if ($request_uri ~ ^/(.*)\\.html$) {\n            return 302 /$1;\n        }\n    }\n\n    location ~ \\.php$ {\n        fastcgi_split_path_info ^(.+\\.php)(/.+)$;\n        fastcgi_pass   unix:/var/run/php/php7.4-fpm.sock;\n        fastcgi_index  index.php;\n        fastcgi_param  IS_API_ENDPOINT true\n        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include        fastcgi_params;\n    }\n\n\n    listen 80;\n}\n```\n\n### PHP-8.0\nThis one is quite self explainatory.\n\n\n#### Nginx\n\n- To install on Debian-based Distros, run:\n\n```bash\n$ sudo apt-get update\n$ sudo apt install php8.0-fpm nginx\n$ sudo apt-get install php8.0-{apcu,cli,curl,gd,gmp,intl,json,mbstring,pgsql,redis,xml,zip} # The dependencies\n```\n\nSee Nginx configuration above on how to connect to your FPM socket.\n\n### [Composer](https://getcomposer.org/)\nThis is used to install required dependencies from `composer.json`.\n\n- To install on Debian-based distros, follow [this tutorial](https://www.digitalocean.com/community/tutorials/how-to-install-composer-on-ubuntu-20-04-quickstart).\n\n### Shell Access\nYou'll need it to install plugins or setup cron jobs.\n\n### [Phoenix](https://github.com/tosdr/edit.tosdr.org)\nWe recommend running your own Phoenix instance during development so you have control over the API and you don't get ratelimited. Check its repository for more info.\n\n### Discourse Plugins\nCrisp is also responsible for webhooks on [**our forum**](https://forum.tosdr.org/) to, for example, detect if and/or when a service has been added on Phoenix. _(This is entirely optional)_\n\n## Installation\n\n***To install Crisp please make sure you have installed all the [requirements](#requirements) mentioned prior.***\n\nRun the following commands on your terminal:\n\n```bash\n$ git clone --recursive https://github.com/tosdr/CrispCMS.git\n$ cd CrispCMS\n```\n\nAnd you're ready to set it up!\n\n### Installing Composer Dependencies\n\nFrom the repository root, execute the following command:\n\n```bash\n$ composer install\n```\n\nIf no errors are returned, you're good to go!\n\n## Configuring Crisp\n\nFrom the repository root, copy `.env.example` to `.env`:\n\n```bash\n$ cp .env.example .env\n```\n\nThen edit it accordingly.\n\n* _The `$GITHUB_TOKEN` variable is required for private repos to access metadata._ [More Info](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)\n\nAnd you're set!\n\n### Running Database Migrations\n\nThe database needs to be setup after the initial clone. To do this, run this command from the root\nof this repository:\n\n```bash\n$ php bin/cli.php migrate\n$ php bin/cli.php theme install crisp\n$ php bin/cli.php plugin install management\n```\n\nThis will create all necessary tables, as well as install plugins and themes.\n\nNow your instance is ready to run!\n\n## Plugins\n\nCrisp has a plugin system integrated. More info about development can be found within this topic on our forum:\n\nhttps://forum.tosdr.org/t/374\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftosdr%2FFrontpage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftosdr%2FFrontpage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftosdr%2FFrontpage/lists"}