# Configuration For self hosted LearnHouse users, a custom configuration file can be used to suit your needs. ## Backend config file Here is an example of the `config.yaml` file : ```json filename="config.yaml" copy site_name: LearnHouse site_description: LearnHouse is an open-source platform tailored for learning experiences. contact_email: hi@learnhouse.app hosting_config: domain: learnhouse.app ssl: true allowed_origins: - http://localhost:3000 - http://localhost:3001 cookies_config: domain: ".localhost" allowed_regexp: '\b((?:https?://)[^\s/$.?#].[^\s]*)\b' database_config: mongodb_connection_string: mongodb://learnhouse:learnhouse@mongo:27017/ ``` You can also use a `.env` file to configure your backend. If an environment variable is set, it will override the value in the `config.yaml` file, here is an example of the `.env` file : ```env filename=".env" copy LEARNHOUSE_SITE_NAME=LearnHouse LEARNHOUSE_SITE_DESCRIPTION=LearnHouse is an open-source platform tailored for learning experiences. LEARNHOUSE_CONTACT_EMAIL=hi@learnhouse.app LEARNHOUSE_DOMAIN=learnhouse.app LEARNHOUSE_SSL=true LEARNHOUSE_USE_DEFAULT_ORG=true LEARNHOUSE_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:3001 LEARNHOUSE_COOKIE_DOMAIN=.localhost LEARNHOUSE_ALLOWED_REGEXP=\b((?:https?://)[^\s/$.?#].[^\s]*)\b LEARNHOUSE_SELF_HOSTED=false LEARNHOUSE_MONGODB_CONNECTION_STRING=mongodb://learnhouse:learnhouse@mongo:27017/ ``` ### General Metadata #### Site name Your site name #### Site description A short description #### Contact email You contact mail ### Hosting config #### Domain You site's technical domain #### SSL Is ssl used ? #### Allowed origins A list of origins that should be permitted to make cross-origin requests to your website. #### Allowed origins regex A regex string to match against origins that should be permitted to make cross-origin requests to your website. #### Cookies Domain Your frontend domain, the domain will be assigned to cookies that the backend emits, authentication and parts of your site would not work if not configured properly. The value used in the `yaml` should be in the "string" format. ##### Sub domains If you want to use the backend for different subdomains locations, for example : - domain.app - acme1.domain.app - acme2.domain.app You can add a `.` before your domain, here it would be `.domain.app` ### Database config #### Mongodb Database config Your MongoDB Database connection string ## Frontend config file You can also configure your frontend by creating a `.env` file in the `frontend` folder. Here is an example of the `.env` file : ```env filename="front/.env" {1-2} NEXT_PUBLIC_LEARNHOUSE_MULTI_ORG=false NEXT_PUBLIC_LEARNHOUSE_DEFAULT_ORG=defaultorg ``` ### Multi Organizations Please check the [Multi Organization](./organization-hosting-modes) section for more information.