A decentralized, peer-to-peer, encrypted chat in PHP.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Clean up. #RN Jun 18, 2017
src/TheFox Refactored [2] Jun 15, 2017
tests Refactored [1] Jun 15, 2017
.editorconfig PSR1/PSR2 #RN Jun 14, 2017
.gitignore PSR1/PSR2 #RN Jun 14, 2017
.travis.yml Refactored [2] Jun 15, 2017
Makefile PSR1/PSR2 #RN Jun 14, 2017
README.md Coveralls link removed. Jul 18, 2016
application.php Clean up. #RN Jun 18, 2017
bootstrap.php Clean up. #RN Jun 18, 2017
composer.json Refactored [2] Jun 15, 2017
functions.php Clean up. #RN Jun 18, 2017
phpchat.sublime-project PHPStan suggestions fixed. #RN Mar 6, 2017
phpunit.xml Tests moved. Mar 12, 2015



A decentralized, peer-to-peer, encrypted chat in PHP. If nobody on the Internet cares about security and privacy we must take care about ourselves.

Why this project?

Because we need to encrypt and secure the Internet. The Internet is broken and we need to fix it. Thanks people like Edward Snowden we know today that the NSA (and also other intelligence agencies too) operates a global surveillance on citizens. We can't loose our right of freedom, our right of privacy to centralized governmental authorities. Now it's our move. It's time to fight back!

I also like the Bitmessage project. But building thinks by myself feels like I can contribute to the Internet. And coding this with PHP because it's an easy-to-learn programming language and every one can contribute to this project.


  • Peer-to-peer instant messaging.
  • Peer-to-peer offline messaging. Offline means when the recipient is offline.
  • Decentralized: See DHT.
  • Point-to-point encryption using SSL.
  • Addressbook: manage all conversation partners.
  • IMAP interface for fetching new messages.
  • SMTP interface for sending messages.
  • Send P2P random messages.


  1. Clone

     git clone https://github.com/TheFox/phpchat.git
  2. Change to your phpchat directory and run

  3. You need to forward TCP port 25000 (default) on your modem to your computer. After the chat has been started once there will be a settings.yml. Edit this file to change the incoming port. Change the settings.yml only when PHPChat is not running.

  4. Start:




    To run PHPChat with an MUA interface run


    To run PHPChat only in daemon mode:



  • Some tasks are commented with NOT_IMPLEMENTED.
  • TODO are to be complete the PHP Code Sniffer tests before releasing a new version.


You're welcome to contribute to this project. Fork this project at https://github.com/TheFox/phpchat. You should read GitHub's How to Fork a Repo.



Copyright (C) 2014 Christian Mayer http://fox21.at

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