{"id":28652410,"url":"https://github.com/nfoert/circles","last_synced_at":"2025-06-13T06:37:37.865Z","repository":{"id":189521446,"uuid":"680830891","full_name":"nfoert/circles","owner":"nfoert","description":"Circles is an open source, decentralized social network that allows users to move and interact within physical spaces.","archived":false,"fork":false,"pushed_at":"2024-03-14T18:04:37.000Z","size":3663,"stargazers_count":14,"open_issues_count":16,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-03-14T19:39:05.895Z","etag":null,"topics":["css","django","hacktoberfest","html","javascript","open-source","python","social-network"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/nfoert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-08-20T14:48:17.000Z","updated_at":"2024-03-14T18:05:03.000Z","dependencies_parsed_at":"2023-10-10T20:48:43.458Z","dependency_job_id":"0f0efffc-a885-42c2-a9be-78c0b6bd8827","html_url":"https://github.com/nfoert/circles","commit_stats":null,"previous_names":["nfoert/circles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nfoert/circles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfoert%2Fcircles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfoert%2Fcircles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfoert%2Fcircles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfoert%2Fcircles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nfoert","download_url":"https://codeload.github.com/nfoert/circles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfoert%2Fcircles/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259596047,"owners_count":22881960,"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":["css","django","hacktoberfest","html","javascript","open-source","python","social-network"],"created_at":"2025-06-13T06:37:20.253Z","updated_at":"2025-06-13T06:37:37.856Z","avatar_url":"https://github.com/nfoert.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003c!-- \u003cimg src=\"repo/images/hacktoberfest_banner.png\" style=\"width: 800px; border-radius:20px;\"\u003e --\u003e\n    \u003cimg src=\"repo/images/circles.png\" style=\"width: 400px; border-radius:20px;\"\u003e\n\u003c/p\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://discord.com/invite/QBDw4UrGXX\"\u003eDiscord\u003c/a\u003e |\n\u003ca href=\"https://twitch.tv/nfoert\"\u003eTwitch\u003c/a\u003e |\n\u003ca href=\"https://youtube.com/@nfoert\"\u003eYouTube\u003c/a\u003e\n\u003c/p\u003e\n\u003chr\u003e\n\u003cp align=\"center\"\u003e\u003cstrong\u003eThe 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.\u003c/strong\u003e\u003c/p\u003e\n\u003chr\u003e\n\n\n\u003cbr\u003e\n\u003cp align=\"center\"\u003eCircles is an open source, decentralized social network where people can move within a physical space and interact with each other.\u003c/p\u003e\n\u003cp align=\"center\"\u003eEvery 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.\u003c/p\u003e\n\n\u003chr\u003e\n\n\u003cbr\u003e\n\n\u003cimg src=\"repo/images/circles_main.png\"\u003e\n\n\u003cbr\u003e\n\n# Why\n\nI created Circles for a few reasons:\n\n- I care a lot about open source and I feel that we need more options for FOSS social media\n- 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.\n\n# What needs done\n\nI'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.\n\n- What's the best way to make Circles decentralized?\n\nThere's more that I have planned, I need to figure out a good way to show my To-Do list :D\n\n# Installation for Development\n\nAll 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.\nThis is a brief guide.\n\nClone this repo by running\n\n```bash\ngit clone https://github.com/nfoert/circles\n```\n\nNavigate to it using and create a virtual enviroment\n\n```bash\ncd circles\npython -m venv \u003cname of venv\u003e\n```\n\nActivate the venv using the command for your system and install the necessary packages\n(for Windows):\n\n```bash\nsource ./\u003cname of venv\u003e/Scripts/activate\npip install -r requirements.txt\n```\n\n(for Mac OS):\n\n```bash\nsource ./\u003cname of venv\u003e/bin/activate\npip install -r requirements.txt\n```\n\n(for Linux):\n\n```bash\nsource ./\u003cname of venv\u003e/bin/activate\npip install -r requirements.txt\n```\n\n\u003cbr\u003e\n\nNext, make and migrate your migrations, then create a superuser.\nBefore doing this, delete the `migrations` folders from the `main` and `authentication` folders. Then run the following commands:\n\n```bash\ncd circles\npython manage.py makemigrations main authentication\npython manage.py migrate\npython manage.py createsuperuser\n```\n\n**Note**: If you get an error when creating your superuser (`Superuser creation skipped due to not running in a TTY`) use this command instead:\n\n```bash\nwinpty python manage.py createsuperuser\n```\n\nNow, run the server so you can do some initial setup\n\n```bash\npython manage.py runserver\n```\n\nNavigate 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`.\n\nEverything *should* be working. Locally at least.\n\nIf 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.\n\n**Note: Set the `DJANGO_SETTINGS_MODULE` enviroment variable to `circles.production_settings` on your production server.**\n\n**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.**\n\nAdditional setup may be required on specific hosting providers to be able to find things like static or media files.\n\nOn my production server I also have to run `python manage.py collectstatic` to get updated static files to be served to the client correctly.\n\n# Contributing\nCheck [CONTRIBUTING.md](CONTRIBUTING.md) for instructions on how to contribute to Circles.\n\n\u003c!-- # Hacktoberfest\n\nCircles is proud to be a part of hacktoberfest 2023! I'd love to see some people contributing to Circles, and I'll also be contributing to other open source projects during Hacktoberfest.\n\nIf you're not sure what Hacktoberfest is, It's an celebration of open source software. It teaches users the power of open source, how to use source control and how to contribute to open source projects. The internet is powered by open source, and contributing and celebrating that and the people behind it is what Hacktoberfest is all about.\n\nCircles is a very new project, and there's lots of things to be done. If you have any skills to help get some of the things on the above list finished, or just want to help clean up some code, I'd appreciate it.\n\nYou can learn more about Hacktoberfest [here](https://hacktoberfest.com/). --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfoert%2Fcircles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfoert%2Fcircles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfoert%2Fcircles/lists"}