diff --git a/docs/authelia-scripts.md b/docs/authelia-scripts.md index 3b5b94894..14fc2b12f 100644 --- a/docs/authelia-scripts.md +++ b/docs/authelia-scripts.md @@ -16,8 +16,8 @@ For instance, you can build Authelia with: authelia-scripts build -Or start the *docker-image* suite with: +Or start the *Standalone* suite with: - authelia-scripts suites start docker-image + authelia-scripts suites setup Standalone You will find more information in the scripts usage helpers. \ No newline at end of file diff --git a/docs/build-and-dev.md b/docs/build-and-dev.md index 6cfde42f7..b3a7582c0 100644 --- a/docs/build-and-dev.md +++ b/docs/build-and-dev.md @@ -1,60 +1,50 @@ # Build and dev **Authelia** is written in Go and comes with a dedicated CLI called [authelia-scripts](./authelia-scripts.md) -which is provided after running `source bootstrap.sh`. This CLI provides many useful tools to help you during +which is available after running `source bootstrap.sh`. This CLI provides many useful tools to help you during development. -In order to build and contribute to **Authelia**, you need to make sure Node with version >= 8 and < 12, -Go v1.13 and Docker is installed on your machine. +In order to build and contribute to **Authelia**, you need to make sure Go v1.13, Docker, +docker-compose and Node with version >= 8 and < 12 are installed on your machine. -## Build +## Get started -**Authelia** is made of two parts: the frontend and the backend. +**Authelia** is made of Go application serving the API and a [React](https://reactjs.org/) +application for the portal. -The frontend is a [React](https://reactjs.org/) application written in Typescript and -the backend is Go application. +In order to ease development, Authelia uses the concept of [suites] to run Authelia from source +code so that your patches are included. This is a kind of virtual environment running **Authelia** +in a complete ecosystem (LDAP, Redis, SQL server). Note that Authelia is hotreloaded in the +environment so that your patches are instantly included. -The following command builds **Authelia** under dist/: +The next command starts the suite called *Standalone*: - authelia-scripts build + authelia-scripts suites setup Standalone -Or you can also build the Alpine-based official Docker image with: +Most of the suites are using docker-compose to bootstrap the environment. Therefore, you +can check the logs of all application by running the following command on the component +you want to monitor. - authelia-scripts docker build + docker logs authelia_authelia-backend_1 -f -## Development - -In order to ease development, Authelia uses the concept of [suites]. This is -a kind of virutal environment for **Authelia**, it allows you to run **Authelia** in a complete -ecosystem, develop and test your patches. A hot-reload feature has been implemented so that -you can test your changes right after the file has been saved. - -The next command will start the suite called [basic](../test/suites/basic/README.md): - - authelia-scripts suites start basic - -Then, edit the code and observe how **Authelia** is automatically updated. +Then, edit the code and observe how **Authelia** is automatically reloaded. ### Unit tests -To run the unit tests written, run: +To run the unit tests, run: authelia-scripts unittest ### Integration tests -Integration tests run with Mocha and are based on Selenium. They generally -require a complete environment made of several components like redis, a SQL server and a -LDAP to run. That's why [suites] have been created. At this point, the *basic* suite should -already be running and you can run the tests related to this suite with the following -command: +Integration tests are located under the `suites` directory based on Selenium. authelia-scripts suites test -You don't need to start the suite before testing it. Given your environment is not running -any suite, just use the following command to test the basic suite. +You don't need to start the suite before testing it. Given you're not running +any suite, just use the following command to test the *Standalone* suite. - authelia-scripts suites test basic + authelia-scripts suites test Standalone The suite will be spawned, tests will be run and then the suite will be teared down automatically. diff --git a/docs/deployment-dev.md b/docs/deployment-dev.md index 9781fcf58..4a8d47c54 100644 --- a/docs/deployment-dev.md +++ b/docs/deployment-dev.md @@ -16,11 +16,10 @@ non resilient to failures.* **NOTE:** If not done already, we highly recommend you first follow the [Getting Started] documentation. -In some cases, like protecting personal websites, it can be fine to use -**Authelia** in a non highly-available setup. We can -achieve that in order to reduce the number of components to only two: a -reverse proxy such as nginx or Traefik and Authelia as a companion of the -proxy. +In some cases, like protecting personal projects/websites, it can be fine to use +**Authelia** in a non highly-available setup. This reduces the number +of components to only two: a reverse proxy such as nginx or Traefik and +Authelia as a companion of the proxy. As for a regular deployment in production, you need to install **Authelia** either by pulling the Docker image or building distributable version. @@ -48,16 +47,16 @@ TODO ### Discard SQL server -There is an option in the configuration file to avoid using a SQL server and use -a local sqlite3 database instead. This option will therefore prevent you from running -multiple instances of **Authelia** in parallel. +There is an option in the configuration file to avoid using an external SQL server +and use a local sqlite3 database instead. This option will therefore prevent you +from running multiple instances of **Authelia** in parallel. Consequently, this option is not meant to be used in production or at least not one that should scale out. -Here is the configuration block you should use: +Here is the configuration you should use: storage: - # The directory where the sqlite3 file will be saved + # The file path of the sqlite3 file where data will be persisted local: path: /var/lib/authelia/db.sqlite3 @@ -159,7 +158,7 @@ Well, as stated before those instructions are not meant to be applied for a production environment. That being said, in some cases it is just fine and writing an Ansible playbook to automate all this process is ok. We would really be more than happy to review such a PR. -In the meantime, you can check the *basic* [suite](./suites.md) to see all this +In the meantime, you can check the *Standalone* [suite](./suites.md) to see all this in a real example. [Getting Started]: ./getting-started.md diff --git a/docs/getting-started.md b/docs/getting-started.md index 700bd7d29..d6bc21632 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -7,9 +7,9 @@ command and follow the instructions of bootstrap.sh: source bootstrap.sh -Then, start the *docker-image* [suite]. +Then, start the *Standalone* [suite]. - authelia-scripts suites start docker-image + authelia-scripts suites setup Standalone A [suite] is kind of a virtual environment for running Authelia in a complete ecosystem. If you want more details please read the related [documentation](./suites.md). diff --git a/example/compose/authelia/docker-compose.yml b/example/compose/authelia/docker-compose.yml deleted file mode 100644 index 4385eb26d..000000000 --- a/example/compose/authelia/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3' -services: - authelia: - image: authelia:dist - restart: always - volumes: - - ./test/suites/docker-image/config.yml:/etc/authelia/config.yml:ro - environment: - - NODE_TLS_REJECT_UNAUTHORIZED=0 - depends_on: - - redis - networks: - - authelianet \ No newline at end of file diff --git a/example/kube/README.md b/example/kube/README.md index 01e021a05..4963764f4 100644 --- a/example/kube/README.md +++ b/example/kube/README.md @@ -15,7 +15,7 @@ or deploy the dedicated [suite](/docs/suites.md) called *kubernetes*. The simplest way to start a Kubernetes cluster is to deploy the *kubernetes* suite with - authelia-scripts suites start kubernetes + authelia-scripts suites setup kubernetes This will take a few seconds (or minutes) to deploy the cluster. diff --git a/package.json b/package.json index 17a16df89..148c8071d 100644 --- a/package.json +++ b/package.json @@ -2,22 +2,9 @@ "name": "authelia", "version": "3.16.3", "description": "2FA Single Sign-On server for nginx using LDAP, TOTP and U2F", - "bin": { - "authelia": "./dist/server/src/index.js" - }, "engines": { "node": ">=8.0.0 <10.0.0" }, - "scripts": { - "start": "./scripts/authelia-scripts suites start", - "build": "./scripts/authelia-scripts build", - "unittest": "./scripts/authelia-scripts unittest", - "test": "./scripts/authelia-scripts suites test", - "travis": "./scripts/authelia-scripts travis", - "cover": "NODE_ENV=test nyc npm t", - "scripts": "./scripts/authelia-scripts", - "hash-password": "./scripts/authelia-scripts hash-password" - }, "repository": { "type": "git", "url": "git+https://github.com/clems4ever/authelia" diff --git a/test/suites/NetworkACL/README.md b/test/suites/NetworkACL/README.md index 751dfbc5c..46312ec24 100644 --- a/test/suites/NetworkACL/README.md +++ b/test/suites/NetworkACL/README.md @@ -1,4 +1,4 @@ -# Basic suite +# Network ACL suite This suite has been created to test Authelia with basic feature in a non highly-available setup. Authelia basically use an in-memory cache to store user sessions and persist data on disk instead