mirror of
https://github.com/joshp23/PEWS.git
synced 2024-12-21 18:10:19 +01:00
PEWS (Pew! Pew!): PHP Easy WebFinger Server
.well-known/webfinger | ||
assets | ||
LICENSE | ||
README.md |
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
- Copy
.well-known/webfinger
into the root of your webserver. - 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
- Copy this repo as
PEWS
to your host server, and make it readable by your webserver. ex:/var/www/PEWS
- Add a new host and account resource file to
./well-known/webfinger/store
folling the example provided and according to Webfinger specs. - Copy
PEWS/assets/pews.conf
to/etc/apache2/conf-available/pews.conf
and make any changes necessary. - 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.
- Set
class
touser
oradmin
. - 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
- Finish api for adding, removing, and editing resource
links
- Additional storage options? (sqlite, etc.)
- Manager interface
- Add in server-manager API examples (it's in the code... for now)
- 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.