mirror of
https://github.com/learnhouse/docs.git
synced 2026-02-18 00:07:39 +01:00
* Update hosting-guide.mdx * Update config to include new info about NextAuth * Fix some grammatical things & add callout for Windows testers * Update configuration.mdx * remove stupid curly bracket * Update hosting-guide.mdx * Update pages/self-hosting/configuration.mdx Co-authored-by: Badr B. <bdswve@gmail.com> * Update configuration.mdx * Update pages/self-hosting/hosting-guide.mdx * Update hosting-guide.mdx * Remove Linode --------- Co-authored-by: Badr B. <bdswve@gmail.com>
130 lines
3.6 KiB
Plaintext
130 lines
3.6 KiB
Plaintext
import { Callout } from 'nextra-theme-docs'
|
|
import { Steps } from 'nextra-theme-docs'
|
|
|
|
# Self hosting guide
|
|
|
|
We use Docker & Docker Compose to run LearnHouse, this makes it easy to run the application on any machine that has Docker installed.
|
|
|
|
Tested on:
|
|
- macOS Sonoma
|
|
- Ubuntu 23.04 Lunar lobster
|
|
- (Need testers on Windows)
|
|
|
|
<Callout type="info" emoji="🛠">
|
|
Interested in helping test on Windows? Join our [Discord](https://discord.com/invite/CMyZjjYZ6x) community.
|
|
</Callout>
|
|
|
|
## Prerequisites
|
|
|
|
- [Docker](https://docs.docker.com/get-docker/)
|
|
|
|
## Step by step
|
|
|
|
<Steps>
|
|
|
|
### Install Docker
|
|
|
|
To install Docker, follow the instructions for your operating system on the [Docker website](https://docs.docker.com/get-docker/).
|
|
|
|
### Download the LearnHouse repository
|
|
|
|
```bash copy
|
|
git clone https://github.com/learnhouse/learnhouse
|
|
```
|
|
|
|
#### Go to the directory
|
|
|
|
```shell copy
|
|
cd learnhouse
|
|
```
|
|
|
|
### Configure NextAuth
|
|
|
|
Add these lines to your `.env` file. A template is available under `/extra/example-learnhouse-conf.env`.
|
|
|
|
<Callout type="info">
|
|
To safely encrypt tokens and email hashes, you need a NextAuth secret.
|
|
|
|
To create one, either run `npx auth secret`, or on UNIX based systems (MacOS/Linux) you can use `openssl rand -base64 33`.
|
|
|
|
Copy this string into your .env file as NEXTAUTH_SECRET=
|
|
</Callout>
|
|
|
|
```env filename=".env"
|
|
# NextAuth Configuration
|
|
NEXTAUTH_SECRET={generated_secret}
|
|
NEXTAUTH_URL=http://localhost:3000/
|
|
```
|
|
|
|
### Build and run LearnHouse
|
|
|
|
```shell copy
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Access LearnHouse
|
|
|
|
When running the application for the first time, an admin account and organization is created for you, look for the admin credentials in the logs.
|
|
|
|
#### Login to your account
|
|
|
|
Open your browser and go to [http://localhost/login](http://localhost/login) to access the application.
|
|
|
|
#### Change your password
|
|
|
|
After logging in, don't forget to [change your password](http://localhost/dash/user-account/settings/security)
|
|
|
|
<Callout type="warning" >
|
|
It is important to change the default password to a another one, reducing the risk of unauthorized access if your server is compromised.
|
|
</Callout>
|
|
|
|
### You're all set!
|
|
|
|
Thanks for using LearnHouse 🎉
|
|
|
|
</Steps>
|
|
## Further configuration
|
|
|
|
You should be ready to go when following the steps above but if you'd live to enable features like **AI**, **Emails**, **Multi-org**, or customize the application, check the [configuration guide](/self-hosting/configuration).
|
|
|
|
### Environment variables usage with the LearnHouse Docker image
|
|
|
|
You can mix frontend and backend env vars defined in the COnfiguration page, in a single file like the one included on the repository (extra/example-learnhouse-conf.env)
|
|
|
|
```env filename="extra/example-learnhouse-conf.env" copy
|
|
# Frontend
|
|
NEXT_PUBLIC_LEARNHOUSE_MULTI_ORG=false
|
|
NEXT_PUBLIC_LEARNHOUSE_DEFAULT_ORG=default
|
|
# Backend
|
|
LEARNHOUSE_COOKIE_DOMAIN=.localhost
|
|
LEARNHOUSE_SQL_CONNECTION_STRING=postgresql://learnhouse:learnhouse@db:5432/learnhouse
|
|
LEARNHOUSE_REDIS_CONNECTION_STRING=redis://redis:6379/learnhouse
|
|
```
|
|
|
|
```yaml filename="docker-compose.yml" {7-8} copy
|
|
app:
|
|
build: .
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- .:/usr/learnhouse
|
|
env_file:
|
|
- ./extra/example-learnhouse-conf.env
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
```
|
|
|
|
|
|
## Found bugs ?
|
|
|
|
If you find any bugs or have any suggestions, please open an issue on our [GitHub repository](https://github.com/learnhouse/learnhouse/issues/new/choose), we would love to hear from you.
|
|
|
|
Please include as much information as possible, like the steps to reproduce the bug, the expected behavior and the actual behavior.
|
|
|
|
|
|
|
|
|