Skip to content

Polygon Project is an upcoming open-source social network, with focus on privacy and modularity.

License

Notifications You must be signed in to change notification settings

getpolygon/polygon

Repository files navigation

core

Node CI Docker FOSSA Status

Warning, none of the branches are currently stable. The code is not guaranteed to work, and the database schemas sometimes are updated without creating new migration files. Currently, this is a work-in-progress.

The core powering Polygon: an upcoming open-source & privacy-oriented social network that is not hungry for your data.

Development configuration

Warning: this guide is not created for production purposes. Using this as a way to self-host Polygon is not recommended and may cause errors in the long-term.

These steps will guide you through the process of setting up a polygon-isecure/core instance on your machine for development purposes.

For that you will need:

Provisioning the databases

Polygon's core depends on Redis and PostgreSQL. Let's setup a Redis instance using the following Docker command:

docker run --name redis -dp 6379:6379 redis redis-server --requirepass "<password>"

and replace the <password> with a secure password. You redis connection URL should now look something like this:

redis://default:<password>@localhost:6379/

Now let's setup PostgreSQL. From the terminal, execute the following command:

docker run --name postgres -dp 5432:5432 -e POSTGRES_PASSWORD=<password> postgres

and replace the <password> with a secure password. After doing these steps your PostgreSQL connection URL should look like this:

postgres://postgres:<password>@localhost:5432/postgres

Finally, let's configure Stormi, which is a simple, hash-based and open-source file server.

docker run --name stormi -dp 6345:6345 ghcr.io/polygon-isecure/stormi:master

By default, the username and password are admin and stormi-admin.

Stormi connection string has the following structure:

https://admin:stormi-admin@localhost:6345/

Configuring the core

After the databases have been provisioned, we will need to configure the core. Create a config.yaml in root directory and add the following properties to it:

jwt:
  secret: "<something super random>"

databases:
  redis: "redis://default:<password>@localhost:6379/"
  stormi: "https://admin:stormi-admin@localhost:6345/"
  postgres: "postgres://postgres:<password>@localhost:5432/postgres"

Replace <something super random> with a random string. We recommend a string value with a length of at least 512 bits(64 characters).

Running migrations

To sync the migrations with the database, run the following command:

yarn migrate "user=postgres password=<password> sslmode=disable dbname=postgres" up

and replace <password> with the password that you defined earlier for PostgreSQL. This will ensure that everything related to SQL is up-to-date.

Building the project

To install the dependencies, transpile the project and run it:

yarn install
yarn build
yarn start

By default, the server will start at http://localhost:3001/. To set a custom port, you can specify the polygon.port variable in your configuration file:

polygon:
  port: 5000
  # ...

Congratulations 🎊

You should now have a complete version of polygon-isecure/core running. To sync with the nightly branch just run the following commands:

git fetch
git pull origin nightly

Again, this guide is not intended for production purposes. Current version of core is unstable and has some problems that we still have to deal with.

About

Polygon Project is an upcoming open-source social network, with focus on privacy and modularity.

Topics

Resources

License

Stars

Watchers

Forks

Languages