{"id":13820873,"url":"https://github.com/dynastic/place","last_synced_at":"2025-05-16T10:33:25.739Z","repository":{"id":40362696,"uuid":"86937439","full_name":"dynastic/place","owner":"dynastic","description":"An open-source recreation of Reddit's /r/place. ","archived":false,"fork":false,"pushed_at":"2023-07-22T14:56:09.000Z","size":4699,"stargazers_count":318,"open_issues_count":21,"forks_count":96,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-11-19T20:46:50.784Z","etag":null,"topics":["javascript","js","node","nodejs","place","reddit"],"latest_commit_sha":null,"homepage":"https://canvas.place","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dynastic.png","metadata":{"files":{"readme":"README.md","changelog":"changelogs/1.json","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-04-01T19:29:18.000Z","updated_at":"2024-11-07T14:40:10.000Z","dependencies_parsed_at":"2023-02-16T05:45:28.146Z","dependency_job_id":"9caf09c6-3ee9-41fd-acf4-7a80479b2ec4","html_url":"https://github.com/dynastic/place","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynastic%2Fplace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynastic%2Fplace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynastic%2Fplace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynastic%2Fplace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dynastic","download_url":"https://codeload.github.com/dynastic/place/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254512869,"owners_count":22083476,"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":["javascript","js","node","nodejs","place","reddit"],"created_at":"2024-08-04T08:01:10.787Z","updated_at":"2025-05-16T10:33:20.731Z","avatar_url":"https://github.com/dynastic.png","language":"JavaScript","readme":"# Dynastic Place\n\nAn open-source [r/place](https://reddit.com/r/place) alternative, made by [Dynastic](https://dynastic.co). Want to chat? Join our [Discord server](https://discord.gg/CgC8FTg).\n\n## The state of this project\nThis project is no longer actively maintained and may not be the best choice for a public service. We welcome contributions and new maintainers, but it can unfortunately no longer be a priority for us. In general, it uses some misguided techniques from formerly-beginner developers and portions may be somewhat hard to maintain due to this (however, any help fixing that are super appreciated).\n\nIt's been really cool to see people use this project, whether for their artful creations on [our copy, canvas.place](https://canvas.place), or to run their own special-purpose instances (for example, we heard of some Microsoft interns using it, which was pretty cool) and we're proud of the work everyone put into it.\n\n---\n\n## Getting started\n\nThese instructions will help you get an instance of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project in a production environment.\n\n### Prerequisites\n\n* Node 8 or **higher**\n* [MongoDB](https://www.mongodb.com) *(sorry)*\n* [Yarn package manager](https://www.yarnpkg.com)\n* An internet connection\n\n### Installing\n\n1. Copy `config/config.example.js` to `config/config.js`.\n2. Configure your Place server as you see fit by modifying the values\n   \u003e **Important:** You must set a strong secret in the secret field to protect against cookie-spoofing attacks that could result in attacks on your site!\n3. Run `yarn install` to install the dependencies\n4. Finally, run `node app.js` to start the server.\n\n### Production Deployment\n\n**Ensure `/var/log/place` exists, and the app can write to it.**\n\nPlease only host your own copy if you are willing to abide by the clearly defined [license](https://github.com/dynastic/place/blob/master/LICENSE). **Failure to comply with the listed terms will result in legal action.**\n\nWhen deploying, it is recommended you use a daemon to keep the server alive. We use `pm2`, but any daemon utility, such as `forever`, should work.\n\n#### Using pm2\n\n1. Get [pm2](http://pm2.keymetrics.io) installed **globally** by running `npm i -g pm2`.\n2. Once pm2 is installed, starting Place is as simple as running `pm2 start app.js --name=Place`.\n\nYou can manage your pm2 instances using `pm2 show Place`.\n\nYou can instruct pm2 to save the currently running pm2 instances and start them at boot with `pm2 startup`.\n\n#### Other notes\n\nIt's recommended that you use a reverse proxy rather than running Place direcly on port 80. For this, we recommend Nginx. Below is our nginx configuration:\n\n```nginx\nserver {\n        listen 80;\n        listen [::]:80;\n\n        server_name canvas.place;\n\n        include /etc/nginx/global/*;\n\n        error_page 502 /502-error.html;\n\n        location = /502-error.html {\n                root   /var/www/place.dynastic.co;\n                internal;\n        }\n\n        location / {\n                proxy_pass http://127.0.0.1:3000;\n                proxy_http_version 1.1;\n                proxy_set_header Upgrade $http_upgrade;\n                proxy_set_header Connection 'upgrade';\n                proxy_set_header Host $host;\n                proxy_cache_bypass $http_upgrade;\n        }\n\n}\n```\n\n## Contributing \n\nPlease make a [pull request](/https://github.com/dynastic/place/pulls). Before making a pull request, come and chat with us on [Discord](https://discord.gg/CgC8FTg) in #contributors.\n\nEnsure that all code lints successfully - we have CI that requires this.\n\n### Roadmap\n\nCheck our currently open issues for an idea on what to work on!\n\n## Authors\n\n* [Ayden Panhuyzen](https://ayden.dev) - Core Developer\n* [Jamie Bishop](https://twitter.com/jamiebishop123) - Core Developer\n* [Eric Rabil](https://twitter.com/ericrabil) - Core Developer\n\nAlso see the list of [contributors](https://www.github.com/dynastic/place/contributors) who generously donated their time and skills to this project to to make it what it is.\n\n## License\n\nDynastic Place is licensed under a [modified version of the APGL-3.0 license](https://github.com/dynastic/place/blob/master/LICENSE). Please see it for details.\n\n## Acknowledgments\n\nThank you to:\n* Reddit, for the [original Place](https://reddit.com/r/place).\n* Our community for making it worthwhile.\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynastic%2Fplace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdynastic%2Fplace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynastic%2Fplace/lists"}