mirror of
https://github.com/joshp23/PEWS.git
synced 2024-11-12 00:10:18 +01:00
2.2 KiB
2.2 KiB
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. - Open
.well-known/webfinger/index.php
and setPEWS_DOMAIN_STRICT
totrue
- 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)