PEWS (Pew! Pew!): PHP Easy WebFinger Server
Find a file
2018-01-26 09:41:45 -05:00
.well-known/webfinger clean up redundacies + path traversal protection 2018-01-26 09:41:45 -05:00
assets Installation updates 2018-01-23 13:41:09 -05:00
LICENSE Initial commit 2018-01-21 15:24:33 -05:00
README.md add a TODO item 2018-01-23 13:55:14 -05:00

#PEWS (Pew! Pew!)

PHP Easy WebFinger Server

Features

Server

  • Fully spec compliant webfinger server
  • Can accept json objects as requests
  • Single or multiple domain use

Server-Manager

  • Robust API for adding and removing new hosts and resource accounts
  • API for altering resource data (currently add or remove alias, WIP)
  • Authoritative and secure
  • Easy user management

Quick Start

For single domain use

  1. Copy .well-known/webfinger into the root of your webserver.
  2. Open .well-known/webfinger/index.php and set PEWS_DOMAIN_STRICT to true
  3. Add a new host and account resource file to ./well-known/webfinger/store folling the example provided and according to Webfinger specs.

For multiple domain use

  1. Copy this repo as PEWS to your host server, and make it readable by your webserver. ex: /var/www/PEWS
  2. Add a new host and account resource file to ./well-known/webfinger/store folling the example provided and according to Webfinger specs.
  3. Copy PEWS/assets/pews.conf to /etc/apache2/conf-available/pews.conf and make any changes necessary.
  4. In the terminal issue the command a2enconf pews and follow instructions.

Both:

The PEWS section of a PEWS resource file is not a part of the general Webfinger spec, and is therefore not sent out in a general inquiry. This section is used for PEWS-manager authentication and authorization.

  1. Set class to user or admin.
  2. Set a new password. If set by hand, this password will be hashed when first checked. Alternatively, a user can send a POST request with the following parameters to set a new password:
    • updatePass:user@domain.com
    • pass:pewpewpassword
    • newPass:YourFancyNEwPassword

If a user is class:admin then this user can alter the password of other users by adding auth:admin-name@example.com to the above post data, sending their own password as pass:password.

TODO

  1. Finish api for adding, removing, and editing resource properites and links
  2. Add option to allow users to remove their own resource file
  3. Additional storage options (sqlite, etc.)
  4. Manager interface
  5. Add in server-manager API examples (it's in the code... for now)