sree-hari-s / circles

Circles is an open source, decentralized social network that allows users to move and interact within physical spaces.

Home Page:https://circles.pythonanywhere.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool



Discord | Twitch | YouTube


The production server has now been shut down, I haven't worked on this project in a while and the scope of it is a lot larger than I was anticipating. If interest in this project comes back I will consider working on it again, but for now development is no longer continuing. Thank you to all the contributors who's helped develop this project.



Circles is an open source, decentralized social network where people can move within a physical space and interact with each other.

Every User's Account lives within a Server. These Users can create Circles within these Servers, and sub Circles within those. Any other User can move in and out of Public Circles. Users can send messages in the Circle they're in, or in the entire Server. Users can also create Conversations with specific Users.




Why

I created Circles for a few reasons:

  • I care a lot about open source and I feel that we need more options for FOSS social media
  • Right now, people on social media just feel like users who post stuff. I want Circles to feel like an actual space where people can move and interact, and allow people to have their own ways of expressing themselves.

What needs done

I'd love to work with other programmers, artists, designers, and even you. I'd love to see pepole collaborating and contributing to Circles. Here's a rough list of the things that needs done. This list will change and evolve as the project grows.

  • What's the best way to make Circles decentralized?

There's more that I have planned, I need to figure out a good way to show my To-Do list :D

Installation for Development

All the self-hosting infrastructure is not fully setup yet. These instructions are not final and will be adjusted as new features and infrastructure are set up. If you're having any problems with any of this please create an Issue. This is a brief guide.

Clone this repo by running

git clone https://github.com/nfoert/circles

Navigate to it using and create a virtual enviroment

cd circles
python -m venv <name of venv>

Activate the venv using the command for your system and install the necessary packages (for Windows):

source ./<name of venv>/Scripts/activate
pip install -r requirements.txt

(for Mac OS):

source ./<name of venv>/bin/activate
pip install -r requirements.txt

(for Linux):

source ./<name of venv>/bin/activate
pip install -r requirements.txt

Next, make and migrate your migrations, then create a superuser. Before doing this, delete the migrations folders from the main and authentication folders. Then run the following commands:

cd circles
python manage.py makemigrations main authentication
python manage.py migrate
python manage.py createsuperuser

Note: If you get an error when creating your superuser (Superuser creation skipped due to not running in a TTY) use this command instead:

winpty python manage.py createsuperuser

Now, run the server so you can do some initial setup

python manage.py runserver

Navigate to http://127.0.0.1:8000/admin in your browser. Log in using the credentials for your new super user and find the server info section. Configure the ip to be http://127.0.0.1:8000 and the server name to be whatever you like. I recommend making the name what you're planning on your domain to be. Ensure you set the checkbox for Production to False.

Everything should be working. Locally at least.

If you're doing this on a production server you should either follow the steps as above again, or if you're wanting to customize your own server fork this repo and repeat the steps above with your own GitHub repo url.

Note: Set the DJANGO_SETTINGS_MODULE enviroment variable to circles.production_settings on your production server.

Warning: The SECRET_KEY in settings.py is insecure! Ensure to change this and do any steps in python manage.py check --deploy when using this in production.

Additional setup may be required on specific hosting providers to be able to find things like static or media files.

On my production server I also have to run python manage.py collectstatic to get updated static files to be served to the client correctly.

Contributing

Check CONTRIBUTING.md for instructions on how to contribute to Circles.

About

Circles is an open source, decentralized social network that allows users to move and interact within physical spaces.

https://circles.pythonanywhere.com

License:GNU General Public License v3.0


Languages

Language:JavaScript 82.2%Language:CSS 13.8%Language:Python 2.8%Language:HTML 1.2%