PEWS (Pew! Pew!): PHP Easy WebFinger Server
Find a file
2018-10-05 12:02:34 -04:00
.well-known/webfinger alias mapping! 2018-01-27 21:30:56 -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 Update README.md 2018-10-05 12:02:34 -04: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. 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 links
  2. Additional storage options? (sqlite, etc.)
  3. Manager interface
  4. Add in server-manager API examples (it's in the code... for now)
  5. Strictly link-based resource capabilities (only account/user objects work for now)

Support Dev

All of my published code is developed and maintained in spare time, if you would like to support development of this, or any of my published code, I have set up a Liberpay account for just this purpose. Thank you.