Skip to content

A distributed (decentralized) social network with end-to-end encryption for messaging, private posts and private profile data. Posts can contain semantic information, so it is possible to search for all friends driving from A to B or all events in a 3 km radius for example.

License

tempbottle/Charme

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Screenshot

Charme is a decentralized social network with end-to-end encryption. You can save your user data on a server of your choice while you can still interact (write messages, visit profiles, etc.) with people on other servers. Furthermore messages, private posts and private profile information are end-to-end encrypted. This is a preview version and it is not ready for production use yet. The software is not completed yet, as many things such as Spam or integrity protection are missing and will probably take some more years development time until the first stable release.

  • Video - Watch the video to get a basic functional overview. You should do that before trying the demo.
  • Demo - Do not provide any personal data as content is not served via https and the whole thing is not completely secure yet! Provide "mschultheiss.com" (or your own Charme server url) as a server when being asked at signup. Please note that data is reset periodically and the demo server is not always available as it is not very powerful. Setup your own server if you want a better test environment. Try to clear your cache if something is not working properly.
  • Paper - The paper describes the basic ideas and the protocol of Charme. Please note that it is unfinished.
  • Questions - Ask in the Google group
  • Twitter Updates - Get informed about updates
  • Send Money - You can support development by sending me some money via Paypal, Bitcoin or Flattr.

You can add semantic information to your posts. With this feature it is possible to perform search queries like "Show me all events created by my fellow students in a 30 km radius" or "Show me all friends driving from Munich to Augsburg tommorrow":

Warning: This is for preview purposes only. It is almost function complete but neither stable nor secure. There are essential things missing, such as integrity protection for the client and forced https for server-to-server communication. The code is of not-so-good (horrible) quality right now and will be refactored and documented during the next months.

Setup a client

  • You can use the Demo Client, linked above for testing
  • You can also run it on your own server by copying the files in /jsclient on your server to test. Please note the client does not support https right now, due to mixed content policy.
  • Later we will provide native build for Windows, Mac etc.

Setup a Server

  • IT IS RECOMMENDED TO SETUP SERVERS IN A CLOSED TEST ENVIRONMENT (INTRANET etc.) WITHIN A VIRTUAL MACHINE ONLY!!! THE SOFTWARE IS NOT SECURE AT THE MOMENT!!!
  • Setting up a server requires solid knowledge of GNU/Linux
  • Copy the files in /server/charme to yourserver.com/charme, so that req.php is accessable via yourserver.com/charme/req.php Afterwards use the charme/admin/setup.sh script on Debian and Fedora. If you are using another OS or there are some errors, try out the steps described in the doc/install.md file.
  • Mongo DB may require a /data/db directory to work. Always check status via charme/admin/status.sh and the Apache logs if something is not working.
  • Make sure to create a config/imprint.html and a config/terms.html file containing your contact information and terms of service if your server goes public. But do not set up a public server right now as the software is not stable or secure!!
  • The most common errros are listed in faq_errors.md.
  • There is a short video on how to setup a test server on Youtube

FAQ

Why am I not allowed to loose the passphrase

The passphrase basically encrypts all your private stuff. We can not provide a revert function here, because otherwise we could also read your private data, which is not what we want to.

You have stolen the collection feature from Google Plus!

Wrong! Google introduced collections in May 2015 (https://plus.google.com/+googleplus/posts/7ZpGWeou2sV). Charme had collections since 2012. Check out the commits from 2012/2013:

Developers

Directories:

**Path** **Description**
/jsclient Web based Client doing encryption and client-to-server requests.
/server This directory contains all the code for running a server.
/doc Developer Documentation. See the Github Wiki also
/Mobile Mobile App Files. Incomplete.

How to Contribute?

Libraries

A lot of libraries are used in Charme. Find a list here.

License

Charme is a distributed social network with end-to-end encryption

Copyright (C) 2015 Manuel Schultheiß

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

A distributed (decentralized) social network with end-to-end encryption for messaging, private posts and private profile data. Posts can contain semantic information, so it is possible to search for all friends driving from A to B or all events in a 3 km radius for example.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 38.1%
  • Java 26.2%
  • PHP 12.9%
  • CSS 11.9%
  • HTML 7.7%
  • CoffeeScript 1.9%
  • Other 1.3%