Giter Club home page Giter Club logo

travelspirit / charme Goto Github PK

View Code? Open in Web Editor NEW

This project forked from projobless/charme

0.0 1.0 0.0 38.33 MB

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.

Home Page: http://mschultheiss.github.io/Charme/

License: GNU General Public License v3.0

CoffeeScript 1.94% JavaScript 38.22% CSS 11.87% HTML 7.68% Java 26.15% Shell 0.57% Batchfile 0.52% Objective-C 0.18% ApacheConf 0.01% PHP 12.86%

charme's Introduction

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

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

  • ONLY USE FOR TESTING!!
  • 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 is protecting your passphrase important?

The passphrase encrypts all your private data. We can not provide a "forgot passphrase" function as we would have to know your passphrase to do so.

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.