A decentralized personal data server inspired by Solid
Important: For upgrade notes and change history, see CHANGELOG.md.
Life Server is personal data server written in Node.js, originally based on MIT's Solid Server.
This server is intended for the following audiences:
To put it another way, due to a shortage of engineering resources, the priorities will be: Developer QoL (Quality of Life) over User QoL over DevOps QoL.
Updated: June 2020.
This is an experimental server focusing on interop exploration and rapid feature iteration. "Move fast and break things (and then fix them just as quickly)", to use a tired cliché.
This phase focuses on general cleanup and refactoring from the source
node-solid-server v4 baseline.
oidc-auth-manager and the
solid-multi-rp-client)
libs into this repository (to make for a faster release and refactoring
process).console and debug) with a
dedicated logger like Bunyan or Pino./profile/card#me to /web#idBonus/If-time:
node-mailer package to latest versioninquirer and commander packages to latest versionThis phase focuses on exploring some advanced features that may make it into Solid spec proposals, as well as integration with external Solid-adjacent projects and specs.
did:web DID
and corresponding keys for the Server itself, during installation.did:web DID
and corresponding keys for each user on account registration.did:key
supportoidc-op
OpenID Connect Provider library to a more widely supported one, such as
Filip's node-oidc-provider
lib.Since node-solid-server (NSS) is
being deprecated in favor of inrupt/pod-server,
this repo intends to be another compatible implementation (the more the merrier!).
Does not support:
acl:origin checking or Trusted Apps (uses solid-permissionsacl-check.js for access control)See Solid and Life Server Value Proposition for Developers doc.
To run the Life Server server, you will first need to install
Node.js. (The developers recommend using nvm
to install Node.)
life-server from Githubgit clone https://github.com/interop-alliance/life-server.git
cd life-server
npm install
/etc/hosts (development/testing only)To run the account creation on unit tests, life-server's test suite
uses the following localhost domains: nic.localhost, tim.localhost, and
nicola.localhost. You will need to create host file entries for these, in
order for the tests to pass.
Edit your /etc/hosts file, and append:
# Used for unit testing
127.0.0.1 nic.localhost
127.0.0.1 tim.localhost
127.0.0.1 nicola.localhost
Local/Development: life-server includes a default localhost self-signed
TLS certificate in the config/ folder. Advanced users may want to create
their own certificates for local testing.
Production: Installing life-server in a production environment will
require a valid TLS certificate (self-signed certs will not work). In addition,
if you're running the server in Multi User mode, you will need a
Wildcard Certificate.
The easiest way to customize life-server is by running the init wizard.
This will create a config.dev.js in your current folder:
./bin/server init
To run your server:
./bin/server start
After startup, the server is available at the configured server URL (by default,
https://localhost:7070).
You can run life-server from our prebuilt docker image with the following command:
Run latest build from master branch
docker run -p 7070:7070 interopalliance/life-server:master
Run a tagged release
docker run -p 7070:7070 interopalliance/life-server:{gitTag}
# e.g. docker run -p 7070:7070 interopalliance/life-server:v6.0.2
You can then access the application at https://localhost:7070.
If you want to provide a custom config.js, mount it as a volume:
docker run -p 7070:7070 -v $(pwd)/config.json:/usr/src/app/config.dev.js
Clone the repository, then:
docker build -t life-server .
docker run -p 7070:7070 life-server
TBD
Note: This is an experimental research server, not for production use.
Life Server is only possible because of a large community of Solid contributors. A heartfelt thank you to everyone for all of your efforts!
Content type
Image
Digest
Size
142.8 MB
Last updated
over 5 years ago
docker pull interopalliance/life-server:8.0.0