Skip to content

Documentation for self-hosting with docker compose #855

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

unteem
Copy link

@unteem unteem commented Apr 7, 2025

Purpose

Make self hosting of Docs easier with an example of a deployment procedure with docker compose and document how to configure Docs.

While #583 propose an easy way to deploy Docs with docker and Make, here we describe more in details the various steps and requirements to deploy Docs.

Proposal

  • example to deploy and configure keycloak
  • example to deploy and configure minio
  • example to configure proxy and certs
  • example to deploy and configure Docs

Improvements

  • Rephrase description of environment variables and categorize
  • Use template for nginx conf

Fixes #561
Supersedes #583

A one liner quick start could be a nice addition:

  • merge all services in a single compose
  • scripts to generate secrets

@unteem unteem force-pushed the documentation-docker branch 3 times, most recently from ae27df7 to 3531bf4 Compare April 8, 2025 08:50
@AntoLC AntoLC requested a review from lunika April 8, 2025 19:23
Copy link
Member

@lunika lunika left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you commits does not have a description. It is useful to add it to explain why you made the modification about the env.md file for example.

@mustafa0x
Copy link

This commit will make docs more accessible to a huge number of teams. Eagerly waiting to see it committed!

@unteem unteem force-pushed the documentation-docker branch 2 times, most recently from 94046a7 to 99bd17d Compare May 20, 2025 13:13
@unteem
Copy link
Author

unteem commented May 20, 2025

Thanks for the reviews, should be good now.

@lunika I removed the commits that change env.md and will make another PR of those changes make sense. I think its better to split it.

@virgile-dev virgile-dev requested review from qbey and lunika May 20, 2025 15:10
@unteem unteem force-pushed the documentation-docker branch from 99bd17d to b5cd3e7 Compare May 21, 2025 09:05
Copy link
Collaborator

@virgile-dev virgile-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about we keep an installation.md at the root of the /docs folder where we can list the different deployment option (K8S, Compose and NIX) ?

Copy link
Collaborator

@virgile-dev virgile-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's merge this and make documentation for different deployment solution more homogeneous in a next PR.

@virgile-dev virgile-dev removed the request for review from qbey May 23, 2025 09:17
@virgile-dev virgile-dev enabled auto-merge (squash) May 23, 2025 09:19
auto-merge was automatically disabled May 23, 2025 10:41

Head branch was pushed to by a user without write access

@unteem unteem force-pushed the documentation-docker branch 7 times, most recently from 072463a to b178c35 Compare May 23, 2025 13:09
@virgile-dev virgile-dev enabled auto-merge (squash) May 23, 2025 20:02
@virgile-dev
Copy link
Collaborator

@unteem can you make the last test pass so we can merge this please ?

@AbdelRahmanAlTamimi
Copy link

@unteem
Hi, I've noticed that the curl commands provided in the docs/installation/compose.md and other files are currently resulting in a 404: Not Found error. Could you please investigate and update the documentation accordingly? Thanks!

OIDC_RP_SIGN_ALGO=RS256
OIDC_RP_SCOPES="openid email"
#USER_OIDC_FIELD_TO_SHORTNAME
#USER_OIDC_FIELDS_TO_FULLNAME
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


### Additional notes:

For increased security you should create a dedicated user with `readwrite` access to the Bucket. In the following example we will use MinIO root user.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be clarified imo, it took me a while until I made the connection of currently root user & password credentials being the ones for

AWS_S3_ACCESS_KEY_ID=<s3 access key>
AWS_S3_SECRET_ACCESS_KEY=<s3 secret key>

Also maybe at least link to outside docs that explain how to set up a user? I imagine most (including me) are not familiar with how one usually sets up minio.

I'm currently trying to set that up, from my understanding I need to create a new user, https://min.io/docs/minio/linux/administration/identity-access-management/minio-user-management.html#id1 and then it sounds like I shouldn't use the user credentials directly but create an accesskey to put into the config? https://min.io/docs/minio/linux/reference/minio-mc-admin/mc-admin-accesskey-create.html#command-mc.admin.accesskey.create

Copy link
Author

@unteem unteem Jun 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initially I added an example but I eventually dropped it. The intention here is more to provide a quick start example than a thorough process to go to production. I don't know if we want to go that deep in details, like creating a user with the correct permissions.

Docs requires some "complex" parts like an IDP and Object Storage, I think its important for those who want to self host those parts to read the upstream doc and understand by themselves all the implications.

In this context I think skipping user and policy creation and using the minio root user is good enough as an example.

In this case to create the user it would look like this:

  1. Create policy for the bucket
cat > readwritedocs.json << EOF
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::<your-bucket-name>/*"
            ]
        }
    ]
}
EOF
mc admin policy create myminio readwritedocs readwritedocs.json
  1. Create user
mc admin user add myminio <username> <password>
  1. Assign policy to user
mc admin policy attach myminio getonly --user=<your-user>

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curious to have your thoughts on this @virgile-dev
should I add this part in the example ?

auto-merge was automatically disabled June 3, 2025 11:33

Head branch was pushed to by a user without write access

@unteem unteem force-pushed the documentation-docker branch from e01a802 to 3ebf76b Compare June 3, 2025 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add docker compose up production configuration
8 participants