1.2.1 • Published 4 years ago
immers v1.2.1
immers
ActivityPub server for immers.space - a decentralized virtual reality metaverse platform powered by Mozilla Hubs and activitypub-express.
Installation
We provide a Docker Hub image for immers, and the immers-app repo contains docker-compose configuration, configuration script, and deploy instructions. If you prefer to run immers without docker, it can be deployed just like any other NodeJS & MongoDB app.
Configuration
Immers looks for the following configuration values as environment variables
or in a .env file in the project root.
Required configuration
| Variable | Value | Example |
|---|---|---|
| name | Name of your immer | Immers Space |
| domain | Domain name for your immers server | immers.space |
| hub | Domain name for your Mozilla Hubs Cloud or other connected immersive experience | hub.immers.space |
| smtpHost | Mail service domain (for password resets) | smtp.sendgrid.net |
| smtpPort | Mail service port | 587 |
| smtpUser | Mail service username | apikey |
| smtpPassword | Mail service password | |
| sessionSecret | Secret key for session cookie encryption | Automatically generated when using setup script |
| easySecret | Secret key for email token encryption | Automatically generated when using setup script |
Optional configuration
| Variable | Value | Default |
|---|---|---|
| homepage | Redirect root html requests to this url | Use hub url |
| googleFont | Font family name from to fetch from Google Fonts for immer name header | Monoton |
| backgroundColor | CSS color | #a6549d |
| backgroundImage | Image file | vapor.png |
| icon | Image file | vaporwave-icon.png |
| imageAttributionText | Attribution for backgroundImage, if needed | Vectors by Vecteezy |
| imageAttributionUrl | Attribution for backgroundImage, if needed | https://www.vecteezy.com/free-vector/vector |
| monetizationPointer | Payment pointer for Web Monetization on login & profile pages | Immers Space organization wallet |
| dbName | Database name to use with MongoDb | mongodb |
| port | Port number for immers sever | 8081 |
| smtpFrom | From address for emails | noreplay@mail.domain |
| emailOptInURL | Link to an opt-in form for email updates to show on registration page | None |
| emailOptInParam | Query parameter for emailOptInURL for the e-mail address | Use opt-in url without inserting e-mail |
| emailOptInNameParam | Query parameter for emailOptInURL for the name | Use opt-in url without inserting name |
| systemUserName | Username for a "Service" type actor representing the Immer, enables welcome messages and Mastodon secure mode compatibility | none (does not create service actor) |
| systemDisplayName | Sets the display name for the service actor | none |
| welcome | HTML file for a message that will be delivered from the system user to new user's inboxes (requires systemUserName) | none (does not send message) |
| keyPath, certPath, caPath | Local development only. Relative paths to certificate files | None |
Local dev
immers
- Clone and install immers
git clone https://github.com/immers-space/immers.git
cd immers
npm ci- Install a self-signed certificate
mkdir certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout certs/server.key -out certs/server.cert- Install mongodb
- Run immer with
npm run dev
hubs
- Clone and install our fork
git clone https://github.com/immers-space/hubs.git
cd hubs
git checkout immers-integration
npm ci
npm run build:client- Run hub with either
npm run dev(use Hubs dev networking servers) ornpm run start(to connect to your hubs cloud networking server). - Visit you immer at
https://localhost:8081, approve the certificate exception, get automatically forwarded to your hub athttps://localhost:8080, approve another certificate exception, create a room, and you will be redirected to login or register with your immer.
Default immers server is https://localhost:8081, override with entry IMMERS_SERVER in hubs repo root folder .env file.
If working on immers server web client, run both npm run dev:client and npm run dev at the same time.