Skip to content
An open-source recreation of Reddit's /r/place.
JavaScript CSS HTML Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
changelogs Fix issue where signing out wouldn't work, check keep signed in by de… Sep 3, 2017
client/js
config fix docker db Jul 25, 2018
controllers Fix sign up error codes May 26, 2018
models Fix slow place times with pixel index, cache board image on startup t… Jun 23, 2018
public Better dynastic sign in experience Jul 5, 2018
routes Add Dynastic Accounts support (hidden) Jun 24, 2018
scripts Create IP migration script May 22, 2018
util fix inconsistent bracket spacing Nov 10, 2018
views
.eslintignore FuckL Jul 24, 2017
.eslintrc.json FuckL Jul 24, 2017
.gitignore
.travis.yml
CONTRIBUTING.md
Dockerfile Update Dockerfile Jul 26, 2018
LICENSE Revamp beta dialog a bit, add help one, fix beta dialog script error,… Jan 30, 2018
README.md Update README.md Dec 2, 2019
app.js fix docker db Jul 25, 2018
docker-compose.yml
package.json Bump eslint from 3.19.0 to 4.18.2 Dec 2, 2019
yarn.lock Merge pull request #268 from dynastic/dependabot/npm_and_yarn/axios-0… Dec 2, 2019

README.md

Dynastic Place

An open-source r/place alternative, made by Dynastic. Want to chat? Join our Discord server.

The state of this project

This 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).

It's been really cool to see people use this project, whether for their artful creations on our copy, 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.


Getting started

These 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.

Prerequisites

Installing

  1. Copy config/config.example.js to config/config.js.
  2. Configure your Place server as you see fit by modifying the values

    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!

  3. Run yarn install to install the dependencies
  4. Finally, run node app.js to start the server.

Production Deployment

Ensure /var/log/place exists, and the app can write to it.

Please only host your own copy if you are willing to abide by the clearly defined license. Failure to comply with the listed terms will result in legal action.

When 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.

Using pm2

  1. Get pm2 installed globally by running npm i -g pm2.
  2. Once pm2 is installed, starting Place is as simple as running pm2 start app.js --name=Place.

You can manage your pm2 instances using pm2 show Place.

You can instruct pm2 to save the currently running pm2 instances and start them at boot with pm2 startup.

Other notes

It'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:

server {
        listen 80;
        listen [::]:80;

        server_name canvas.place;

        include /etc/nginx/global/*;

        error_page 502 /502-error.html;

        location = /502-error.html {
                root   /var/www/place.dynastic.co;
                internal;
        }

        location / {
                proxy_pass http://127.0.0.1:3000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }

}

Contributing

Please make a pull request. Before making a pull request, come and chat with us on Discord in #contributors.

Ensure that all code lints successfully - we have CI that requires this.

Roadmap

Check our currently open issues for an idea on what to work on!

Authors

Also see the list of contributors who generously donated their time and skills to this project to to make it what it is.

License

Dynastic Place is licensed under a modified version of the APGL-3.0 license. Please see it for details.

Acknowledgments

Thank you to:

  • Reddit, for the original Place.
  • Our community for making it worthwhile.
You can’t perform that action at this time.