##// END OF EJS Templates
docs: updated docs build for 5.0.X
super-admin -
r5344:206a16d7 stable
parent child Browse files
Show More
@@ -1,192 +1,192 b''
1 # required for pushd to work..
1 # required for pushd to work..
2 SHELL = /bin/bash
2 SHELL = /bin/bash
3
3
4
4
5 # set by: PATH_TO_OUTDATED_PACKAGES=/some/path/outdated_packages.py
5 # set by: PATH_TO_OUTDATED_PACKAGES=/some/path/outdated_packages.py
6 OUTDATED_PACKAGES = ${PATH_TO_OUTDATED_PACKAGES}
6 OUTDATED_PACKAGES = ${PATH_TO_OUTDATED_PACKAGES}
7
7
8 .PHONY: clean
8 .PHONY: clean
9 ## Cleanup compiled and cache py files
9 ## Cleanup compiled and cache py files
10 clean:
10 clean:
11 make test-clean
11 make test-clean
12 find . -type f \( -iname '*.c' -o -iname '*.pyc' -o -iname '*.so' -o -iname '*.orig' \) -exec rm '{}' ';'
12 find . -type f \( -iname '*.c' -o -iname '*.pyc' -o -iname '*.so' -o -iname '*.orig' \) -exec rm '{}' ';'
13 find . -type d -name "build" -prune -exec rm -rf '{}' ';'
13 find . -type d -name "build" -prune -exec rm -rf '{}' ';'
14
14
15
15
16 .PHONY: test
16 .PHONY: test
17 ## run test-clean and tests
17 ## run test-clean and tests
18 test:
18 test:
19 make test-clean
19 make test-clean
20 make test-only
20 make test-only
21
21
22
22
23 .PHONY: test-clean
23 .PHONY: test-clean
24 ## run test-clean and tests
24 ## run test-clean and tests
25 test-clean:
25 test-clean:
26 rm -rf coverage.xml htmlcov junit.xml pylint.log result
26 rm -rf coverage.xml htmlcov junit.xml pylint.log result
27 find . -type d -name "__pycache__" -prune -exec rm -rf '{}' ';'
27 find . -type d -name "__pycache__" -prune -exec rm -rf '{}' ';'
28 find . -type f \( -iname '.coverage.*' \) -exec rm '{}' ';'
28 find . -type f \( -iname '.coverage.*' \) -exec rm '{}' ';'
29
29
30
30
31 .PHONY: test-only
31 .PHONY: test-only
32 ## Run tests only without cleanup
32 ## Run tests only without cleanup
33 test-only:
33 test-only:
34 PYTHONHASHSEED=random \
34 PYTHONHASHSEED=random \
35 py.test -x -vv -r xw -p no:sugar \
35 py.test -x -vv -r xw -p no:sugar \
36 --cov-report=term-missing --cov-report=html \
36 --cov-report=term-missing --cov-report=html \
37 --cov=rhodecode rhodecode
37 --cov=rhodecode rhodecode
38
38
39
39
40 .PHONY: test-only-mysql
40 .PHONY: test-only-mysql
41 ## run tests against mysql
41 ## run tests against mysql
42 test-only-mysql:
42 test-only-mysql:
43 PYTHONHASHSEED=random \
43 PYTHONHASHSEED=random \
44 py.test -x -vv -r xw -p no:sugar \
44 py.test -x -vv -r xw -p no:sugar \
45 --cov-report=term-missing --cov-report=html \
45 --cov-report=term-missing --cov-report=html \
46 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "mysql://root:qweqwe@localhost/rhodecode_test?charset=utf8"}}' \
46 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "mysql://root:qweqwe@localhost/rhodecode_test?charset=utf8"}}' \
47 --cov=rhodecode rhodecode
47 --cov=rhodecode rhodecode
48
48
49
49
50 .PHONY: test-only-postgres
50 .PHONY: test-only-postgres
51 ## run tests against postgres
51 ## run tests against postgres
52 test-only-postgres:
52 test-only-postgres:
53 PYTHONHASHSEED=random \
53 PYTHONHASHSEED=random \
54 py.test -x -vv -r xw -p no:sugar \
54 py.test -x -vv -r xw -p no:sugar \
55 --cov-report=term-missing --cov-report=html \
55 --cov-report=term-missing --cov-report=html \
56 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "postgresql://postgres:qweqwe@localhost/rhodecode_test"}}' \
56 --ini-config-override='{"app:main": {"sqlalchemy.db1.url": "postgresql://postgres:qweqwe@localhost/rhodecode_test"}}' \
57 --cov=rhodecode rhodecode
57 --cov=rhodecode rhodecode
58
58
59 .PHONY: ruff-check
59 .PHONY: ruff-check
60 ## run a ruff analysis
60 ## run a ruff analysis
61 ruff-check:
61 ruff-check:
62 ruff check --ignore F401 --ignore I001 --ignore E402 --ignore E501 --ignore F841 --exclude rhodecode/lib/dbmigrate --exclude .eggs --exclude .dev .
62 ruff check --ignore F401 --ignore I001 --ignore E402 --ignore E501 --ignore F841 --exclude rhodecode/lib/dbmigrate --exclude .eggs --exclude .dev .
63
63
64
64
65 .PHONY: docs
65 .PHONY: docs
66 ## build docs
66 ## build docs
67 docs:
67 docs:
68 (cd docs; docker run --rm -v $(PWD):/project --workdir=/project/docs sphinx-doc-build-rc make clean html)
68 (cd docs; docker run --rm -v $(PWD):/project --workdir=/project/docs sphinx-doc-build-rc make clean html SPHINXOPTS="-W")
69
69
70
70
71 .PHONY: docs-clean
71 .PHONY: docs-clean
72 ## Cleanup docs
72 ## Cleanup docs
73 docs-clean:
73 docs-clean:
74 (cd docs; docker run --rm -v $(PWD):/project --workdir=/project/docs sphinx-doc-build-rc make clean)
74 (cd docs; docker run --rm -v $(PWD):/project --workdir=/project/docs sphinx-doc-build-rc make clean)
75
75
76
76
77 .PHONY: docs-cleanup
77 .PHONY: docs-cleanup
78 ## Cleanup docs
78 ## Cleanup docs
79 docs-cleanup:
79 docs-cleanup:
80 (cd docs; docker run --rm -v $(PWD):/project --workdir=/project/docs sphinx-doc-build-rc make cleanup)
80 (cd docs; docker run --rm -v $(PWD):/project --workdir=/project/docs sphinx-doc-build-rc make cleanup)
81
81
82
82
83 .PHONY: web-build
83 .PHONY: web-build
84 ## Build JS packages static/js
84 ## Build JS packages static/js
85 web-build:
85 web-build:
86 docker run -it --rm -v $(PWD):/project --workdir=/project rhodecode/static-files-build:16 -c "npm install && /project/node_modules/.bin/grunt"
86 docker run -it --rm -v $(PWD):/project --workdir=/project rhodecode/static-files-build:16 -c "npm install && /project/node_modules/.bin/grunt"
87 # run static file check
87 # run static file check
88 ./rhodecode/tests/scripts/static-file-check.sh rhodecode/public/
88 ./rhodecode/tests/scripts/static-file-check.sh rhodecode/public/
89 rm -rf node_modules
89 rm -rf node_modules
90
90
91
91
92 .PHONY: pip-packages
92 .PHONY: pip-packages
93 ## Show outdated packages
93 ## Show outdated packages
94 pip-packages:
94 pip-packages:
95 python ${OUTDATED_PACKAGES}
95 python ${OUTDATED_PACKAGES}
96
96
97
97
98 .PHONY: build
98 .PHONY: build
99 ## Build sdist/egg
99 ## Build sdist/egg
100 build:
100 build:
101 python -m build
101 python -m build
102
102
103
103
104 .PHONY: dev-sh
104 .PHONY: dev-sh
105 ## make dev-sh
105 ## make dev-sh
106 dev-sh:
106 dev-sh:
107 sudo echo "deb [trusted=yes] https://apt.fury.io/rsteube/ /" | sudo tee -a "/etc/apt/sources.list.d/fury.list"
107 sudo echo "deb [trusted=yes] https://apt.fury.io/rsteube/ /" | sudo tee -a "/etc/apt/sources.list.d/fury.list"
108 sudo apt-get update
108 sudo apt-get update
109 sudo apt-get install -y zsh carapace-bin
109 sudo apt-get install -y zsh carapace-bin
110 rm -rf /home/rhodecode/.oh-my-zsh
110 rm -rf /home/rhodecode/.oh-my-zsh
111 curl https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
111 curl https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
112 echo "source <(carapace _carapace)" > /home/rhodecode/.zsrc
112 echo "source <(carapace _carapace)" > /home/rhodecode/.zsrc
113 PROMPT='%(?.%F{green}√.%F{red}?%?)%f %B%F{240}%1~%f%b %# ' zsh
113 PROMPT='%(?.%F{green}√.%F{red}?%?)%f %B%F{240}%1~%f%b %# ' zsh
114
114
115
115
116 .PHONY: dev-cleanup
116 .PHONY: dev-cleanup
117 ## Cleanup: pip freeze | grep -v "^-e" | grep -v "@" | xargs pip uninstall -y
117 ## Cleanup: pip freeze | grep -v "^-e" | grep -v "@" | xargs pip uninstall -y
118 dev-cleanup:
118 dev-cleanup:
119 pip freeze | grep -v "^-e" | grep -v "@" | xargs pip uninstall -y
119 pip freeze | grep -v "^-e" | grep -v "@" | xargs pip uninstall -y
120 rm -rf /tmp/*
120 rm -rf /tmp/*
121
121
122
122
123 .PHONY: dev-env
123 .PHONY: dev-env
124 ## make dev-env based on the requirements files and install develop of packages
124 ## make dev-env based on the requirements files and install develop of packages
125 dev-env:
125 dev-env:
126 pip install build virtualenv
126 pip install build virtualenv
127 pushd ../rhodecode-vcsserver/ && make dev-env && popd
127 pushd ../rhodecode-vcsserver/ && make dev-env && popd
128 pip wheel --wheel-dir=/home/rhodecode/.cache/pip/wheels -r requirements.txt -r requirements_rc_tools.txt -r requirements_test.txt -r requirements_debug.txt
128 pip wheel --wheel-dir=/home/rhodecode/.cache/pip/wheels -r requirements.txt -r requirements_rc_tools.txt -r requirements_test.txt -r requirements_debug.txt
129 pip install --no-index --find-links=/home/rhodecode/.cache/pip/wheels -r requirements.txt -r requirements_rc_tools.txt -r requirements_test.txt -r requirements_debug.txt
129 pip install --no-index --find-links=/home/rhodecode/.cache/pip/wheels -r requirements.txt -r requirements_rc_tools.txt -r requirements_test.txt -r requirements_debug.txt
130 pip install -e .
130 pip install -e .
131
131
132
132
133 .PHONY: sh
133 .PHONY: sh
134 ## shortcut for make dev-sh dev-env
134 ## shortcut for make dev-sh dev-env
135 sh:
135 sh:
136 make dev-env
136 make dev-env
137 make dev-sh
137 make dev-sh
138
138
139
139
140 .PHONY: dev-srv
140 .PHONY: dev-srv
141 ## run develop server instance, docker exec -it $(docker ps -q --filter 'name=dev-enterprise-ce') /bin/bash
141 ## run develop server instance, docker exec -it $(docker ps -q --filter 'name=dev-enterprise-ce') /bin/bash
142 dev-srv:
142 dev-srv:
143 pserve --reload .dev/dev.ini
143 pserve --reload .dev/dev.ini
144
144
145
145
146 .PHONY: dev-srv-g
146 .PHONY: dev-srv-g
147 ## run gunicorn multi process workers
147 ## run gunicorn multi process workers
148 dev-srv-g:
148 dev-srv-g:
149 gunicorn --paste .dev/dev.ini --bind=0.0.0.0:10020 --config=.dev/gunicorn_config.py --timeout=120 --reload
149 gunicorn --paste .dev/dev.ini --bind=0.0.0.0:10020 --config=.dev/gunicorn_config.py --timeout=120 --reload
150
150
151
151
152 # Default command on calling make
152 # Default command on calling make
153 .DEFAULT_GOAL := show-help
153 .DEFAULT_GOAL := show-help
154
154
155 .PHONY: show-help
155 .PHONY: show-help
156 show-help:
156 show-help:
157 @echo "$$(tput bold)Available rules:$$(tput sgr0)"
157 @echo "$$(tput bold)Available rules:$$(tput sgr0)"
158 @echo
158 @echo
159 @sed -n -e "/^## / { \
159 @sed -n -e "/^## / { \
160 h; \
160 h; \
161 s/.*//; \
161 s/.*//; \
162 :doc" \
162 :doc" \
163 -e "H; \
163 -e "H; \
164 n; \
164 n; \
165 s/^## //; \
165 s/^## //; \
166 t doc" \
166 t doc" \
167 -e "s/:.*//; \
167 -e "s/:.*//; \
168 G; \
168 G; \
169 s/\\n## /---/; \
169 s/\\n## /---/; \
170 s/\\n/ /g; \
170 s/\\n/ /g; \
171 p; \
171 p; \
172 }" ${MAKEFILE_LIST} \
172 }" ${MAKEFILE_LIST} \
173 | LC_ALL='C' sort --ignore-case \
173 | LC_ALL='C' sort --ignore-case \
174 | awk -F '---' \
174 | awk -F '---' \
175 -v ncol=$$(tput cols) \
175 -v ncol=$$(tput cols) \
176 -v indent=19 \
176 -v indent=19 \
177 -v col_on="$$(tput setaf 6)" \
177 -v col_on="$$(tput setaf 6)" \
178 -v col_off="$$(tput sgr0)" \
178 -v col_off="$$(tput sgr0)" \
179 '{ \
179 '{ \
180 printf "%s%*s%s ", col_on, -indent, $$1, col_off; \
180 printf "%s%*s%s ", col_on, -indent, $$1, col_off; \
181 n = split($$2, words, " "); \
181 n = split($$2, words, " "); \
182 line_length = ncol - indent; \
182 line_length = ncol - indent; \
183 for (i = 1; i <= n; i++) { \
183 for (i = 1; i <= n; i++) { \
184 line_length -= length(words[i]) + 1; \
184 line_length -= length(words[i]) + 1; \
185 if (line_length <= 0) { \
185 if (line_length <= 0) { \
186 line_length = ncol - indent - length(words[i]) - 1; \
186 line_length = ncol - indent - length(words[i]) - 1; \
187 printf "\n%*s ", -indent, " "; \
187 printf "\n%*s ", -indent, " "; \
188 } \
188 } \
189 printf "%s ", words[i]; \
189 printf "%s ", words[i]; \
190 } \
190 } \
191 printf "\n"; \
191 printf "\n"; \
192 }'
192 }'
@@ -1,118 +1,118 b''
1 .. _increase-gunicorn:
1 .. _increase-gunicorn:
2
2
3 Configure Gunicorn Workers
3 Configure Gunicorn Workers
4 --------------------------
4 --------------------------
5
5
6
6
7 |RCE| comes with `Gunicorn`_ which is a Python WSGI HTTP Server for UNIX.
7 |RCE| comes with `Gunicorn`_ which is a Python WSGI HTTP Server for UNIX.
8
8
9 To improve |RCE| performance you can increase the number of `Gunicorn`_ workers.
9 To improve |RCE| performance you can increase the number of `Gunicorn`_ workers.
10 This allows to handle more connections concurrently, and provide better
10 This allows to handle more connections concurrently, and provide better
11 responsiveness and performance.
11 responsiveness and performance.
12
12
13 By default during installation |RCC| tries to detect how many CPUs are
13 By default during installation |RCC| tries to detect how many CPUs are
14 available in the system, and set the number workers based on that information.
14 available in the system, and set the number workers based on that information.
15 However sometimes it's better to manually set the number of workers.
15 However sometimes it's better to manually set the number of workers.
16
16
17 To do this, use the following steps:
17 To do this, use the following steps:
18
18
19 1. Open the :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
19 1. Open the :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
20 2. In the ``[server:main]`` section, change the number of Gunicorn
20 2. In the ``[server:main]`` section, change the number of Gunicorn
21 ``workers`` using the following default formula :math:`(2 * Cores) + 1`.
21 ``workers`` using the following default formula `(2 * Cores) + 1`.
22 We however not recommend using more than 8-12 workers per server. It's better
22 We however not recommend using more than 8-12 workers per server. It's better
23 to start using the :ref:`scale-horizontal-cluster` in case that performance
23 to start using the :ref:`scale-horizontal-cluster` in case that performance
24 with 8-12 workers is not enough.
24 with 8-12 workers is not enough.
25
25
26 .. code-block:: ini
26 .. code-block:: ini
27
27
28 ; Sets the number of process workers. More workers means more concurrent connections
28 ; Sets the number of process workers. More workers means more concurrent connections
29 ; RhodeCode can handle at the same time. Each additional worker also it increases
29 ; RhodeCode can handle at the same time. Each additional worker also it increases
30 ; memory usage as each has it's own set of caches.
30 ; memory usage as each has it's own set of caches.
31 ; Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
31 ; Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
32 ; than 8-10 unless for really big deployments .e.g 700-1000 users.
32 ; than 8-10 unless for really big deployments .e.g 700-1000 users.
33 ; `instance_id = *` must be set in the [app:main] section below (which is the default)
33 ; `instance_id = *` must be set in the [app:main] section below (which is the default)
34 ; when using more than 1 worker.
34 ; when using more than 1 worker.
35 workers = 6
35 workers = 6
36
36
37 ; Type of worker class, one of `sync`, `gevent`
37 ; Type of worker class, one of `sync`, `gevent`
38 ; Use `gevent` for rhodecode
38 ; Use `gevent` for rhodecode
39 worker_class = gevent
39 worker_class = gevent
40
40
41 ; The maximum number of simultaneous clients per worker. Valid only for gevent
41 ; The maximum number of simultaneous clients per worker. Valid only for gevent
42 worker_connections = 10
42 worker_connections = 10
43
43
44
44
45 3. In the ``[app:main]`` section, set the ``instance_id`` property to ``*``.
45 3. In the ``[app:main]`` section, set the ``instance_id`` property to ``*``.
46
46
47 .. code-block:: ini
47 .. code-block:: ini
48
48
49 # In the [app:main] section
49 # In the [app:main] section
50 [app:main]
50 [app:main]
51 # You must set `instance_id = *`
51 # You must set `instance_id = *`
52 instance_id = *
52 instance_id = *
53
53
54 4. Change the VCSServer workers too. Open the
54 4. Change the VCSServer workers too. Open the
55 :file:`home/{user}/.rccontrol/{instance-id}/vcsserver.ini` file.
55 :file:`home/{user}/.rccontrol/{instance-id}/vcsserver.ini` file.
56
56
57 5. In the ``[server:main]`` section, increase the number of Gunicorn
57 5. In the ``[server:main]`` section, increase the number of Gunicorn
58 ``workers`` using the following formula :math:`(2 * Cores) + 1`.
58 ``workers`` using the following formula `(2 * Cores) + 1`.
59
59
60 .. code-block:: ini
60 .. code-block:: ini
61
61
62 ; Sets the number of process workers. More workers means more concurrent connections
62 ; Sets the number of process workers. More workers means more concurrent connections
63 ; RhodeCode can handle at the same time. Each additional worker also it increases
63 ; RhodeCode can handle at the same time. Each additional worker also it increases
64 ; memory usage as each has it's own set of caches.
64 ; memory usage as each has it's own set of caches.
65 ; Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
65 ; Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
66 ; than 8-10 unless for really big deployments .e.g 700-1000 users.
66 ; than 8-10 unless for really big deployments .e.g 700-1000 users.
67 ; `instance_id = *` must be set in the [app:main] section below (which is the default)
67 ; `instance_id = *` must be set in the [app:main] section below (which is the default)
68 ; when using more than 1 worker.
68 ; when using more than 1 worker.
69 workers = 8
69 workers = 8
70
70
71 ; Type of worker class, one of `sync`, `gevent`
71 ; Type of worker class, one of `sync`, `gevent`
72 ; Use `sync` for vcsserver
72 ; Use `sync` for vcsserver
73 worker_class = sync
73 worker_class = sync
74
74
75
75
76 6. Save your changes.
76 6. Save your changes.
77 7. Restart your |RCE| instances, using the following command:
77 7. Restart your |RCE| instances, using the following command:
78
78
79 .. code-block:: bash
79 .. code-block:: bash
80
80
81 $ rccontrol restart '*'
81 $ rccontrol restart '*'
82
82
83
83
84 Gunicorn Gevent Backend
84 Gunicorn Gevent Backend
85 -----------------------
85 -----------------------
86
86
87 Gevent is an asynchronous worker type for Gunicorn. It allows accepting multiple
87 Gevent is an asynchronous worker type for Gunicorn. It allows accepting multiple
88 connections on a single `Gunicorn`_ worker. This means you can handle 100s
88 connections on a single `Gunicorn`_ worker. This means you can handle 100s
89 of concurrent clones, or API calls using just few workers. A setting called
89 of concurrent clones, or API calls using just few workers. A setting called
90 `worker_connections` defines on how many connections each worker can
90 `worker_connections` defines on how many connections each worker can
91 handle using `Gevent`.
91 handle using `Gevent`.
92
92
93
93
94 To enable `Gevent` on |RCE| do the following:
94 To enable `Gevent` on |RCE| do the following:
95
95
96
96
97 1. Open the :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
97 1. Open the :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
98 2. In the ``[server:main]`` section, change `worker_class` for Gunicorn.
98 2. In the ``[server:main]`` section, change `worker_class` for Gunicorn.
99
99
100
100
101 .. code-block:: ini
101 .. code-block:: ini
102
102
103 ; Type of worker class, one of `sync`, `gevent`
103 ; Type of worker class, one of `sync`, `gevent`
104 ; Use `gevent` for rhodecode
104 ; Use `gevent` for rhodecode
105 worker_class = gevent
105 worker_class = gevent
106
106
107 ; The maximum number of simultaneous clients per worker. Valid only for gevent
107 ; The maximum number of simultaneous clients per worker. Valid only for gevent
108 worker_connections = 30
108 worker_connections = 30
109
109
110
110
111 .. note::
111 .. note::
112
112
113 `Gevent` is currently only supported for Enterprise/Community instances.
113 `Gevent` is currently only supported for Enterprise/Community instances.
114 VCSServer doesn't support gevent.
114 VCSServer doesn't support gevent.
115
115
116
116
117
117
118 .. _Gunicorn: http://gunicorn.org/
118 .. _Gunicorn: http://gunicorn.org/
@@ -1,347 +1,348 b''
1 # Configuration file for the Sphinx documentation builder.
1 # Configuration file for the Sphinx documentation builder.
2 #
2 #
3 # For the full list of built-in configuration values, see the documentation:
3 # For the full list of built-in configuration values, see the documentation:
4 # https://www.sphinx-doc.org/en/master/usage/configuration.html
4 # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
5
6 # -- Project information -----------------------------------------------------
6 # -- Project information -----------------------------------------------------
7 # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
7 # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
8
8
9 import os
9 import os
10 import sys
10 import sys
11 import datetime
11 import datetime
12
12
13 # sphinx injects tags magically during build, we re-define it here to make linters happy
13 # sphinx injects tags magically during build, we re-define it here to make linters happy
14 tags = tags # noqa
14 tags = tags # noqa
15
15
16 # If extensions (or modules to document with autodoc) are in another directory,
16 # If extensions (or modules to document with autodoc) are in another directory,
17 # add these directories to sys.path here. If the directory is relative to the
17 # add these directories to sys.path here. If the directory is relative to the
18 # documentation root, use os.path.abspath to make it absolute, like shown here.
18 # documentation root, use os.path.abspath to make it absolute, like shown here.
19 sys.path.insert(0, os.path.abspath("."))
19 sys.path.insert(0, os.path.abspath("."))
20
20
21
21
22 def _get_version():
22 def _get_version():
23 with open("../rhodecode/VERSION") as f:
23 with open("../rhodecode/VERSION") as f:
24 return f.read().strip()
24 return f.read().strip()
25
25
26
26
27 now = datetime.datetime.today()
27 now = datetime.datetime.today()
28
28
29 # The full project version, used as the replacement for |release| and e.g. in the HTML templates.
29 # The full project version, used as the replacement for |release| and e.g. in the HTML templates.
30 # For example, for the Python documentation, this may be something like 2.6.0rc1.
30 # For example, for the Python documentation, this may be something like 2.6.0rc1.
31 # If you don’t need the separation provided between version and release, just set them both to the same value.
31 # If you don’t need the separation provided between version and release, just set them both to the same value.
32 release = _get_version()
32 release = _get_version()
33
33
34 # The major project version, used as the replacement for |version|.
34 # The major project version, used as the replacement for |version|.
35 # For example, for the Python documentation, this may be something like 2.6.
35 # For example, for the Python documentation, this may be something like 2.6.
36 version = ".".join(release.split(".", 2)[:2]) # First two parts of release
36 version = ".".join(release.split(".", 2)[:2]) # First two parts of release
37
37
38
38
39 # General information about the project.
39 # General information about the project.
40 project = "RhodeCode Enterprise"
40 project = "RhodeCode Enterprise"
41 copyright = f"2010-{now.year}, RhodeCode GmbH"
41 copyright = f"2010-{now.year}, RhodeCode GmbH"
42 author = "RhodeCode GmbH"
42 author = "RhodeCode GmbH"
43
43
44 # -- General configuration ------------------------------------------------
44 # -- General configuration ------------------------------------------------
45
45
46 # If your documentation needs a minimal Sphinx version, state it here.
46 # If your documentation needs a minimal Sphinx version, state it here.
47 # needs_sphinx = '1.0'
47 # needs_sphinx = '1.0'
48
48
49 # Add any Sphinx extension module names here, as strings. They can be
49 # Add any Sphinx extension module names here, as strings. They can be
50 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
50 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
51 # ones.
51 # ones.
52 extensions = [
52 extensions = [
53 "sphinx.ext.autodoc",
53 "sphinx.ext.autodoc",
54 "sphinx.ext.intersphinx",
54 "sphinx.ext.intersphinx",
55 "sphinx.ext.todo",
55 "sphinx.ext.todo",
56 "sphinx.ext.imgmath",
56 "sphinx.ext.imgmath",
57 ]
57 ]
58
58
59 intersphinx_mapping = {
59 intersphinx_mapping = {
60 "enterprise": ("https://docs.rhodecode.com/RhodeCode-Enterprise/", None),
60 "enterprise": ("https://docs.rhodecode.com/RhodeCode-Enterprise/", None),
61 "rcstack": ("https://docs.rhodecode.com/rcstack/", None),
61 "rcstack": ("https://docs.rhodecode.com/rcstack/", None),
62 "control": ("https://docs.rhodecode.com/RhodeCode-Control/", None),
62 "control": ("https://docs.rhodecode.com/RhodeCode-Control/", None),
63 }
63 }
64
64
65 # Add any paths that contain templates here, relative to this directory.
65 # Add any paths that contain templates here, relative to this directory.
66 templates_path = ["_templates"]
66 templates_path = ["_templates"]
67
67
68 # The suffix of source filenames.
68 # The suffix of source filenames.
69 source_suffix = ".rst"
69 source_suffix = ".rst"
70
70
71 # The encoding of source files.
71 # The encoding of source files.
72 # source_encoding = 'utf-8-sig'
72 # source_encoding = 'utf-8-sig'
73
73
74 # The master toctree document.
74 # The master toctree document.
75 master_doc = "index"
75 master_doc = "index"
76
76
77 # The version info for the project you're documenting, acts as replacement for
77 # The version info for the project you're documenting, acts as replacement for
78 # |version| and |release|, also used in various other places throughout the
78 # |version| and |release|, also used in various other places throughout the
79 # built documents.
79 # built documents.
80
80
81
81
82 # The language for content autogenerated by Sphinx. Refer to documentation
82 # The language for content autogenerated by Sphinx. Refer to documentation
83 # for a list of supported languages.
83 # for a list of supported languages.
84 # language = None
84 # language = None
85
85
86 rst_epilog = """
86 rst_epilog = """
87 .. |async| replace:: asynchronous
87 .. |async| replace:: asynchronous
88 .. |AE| replace:: Appenlight
88 .. |AE| replace:: Appenlight
89 .. |authtoken| replace:: Authentication Token
89 .. |authtoken| replace:: Authentication Token
90 .. |authtokens| replace:: **Auth Tokens**
90 .. |authtokens| replace:: **Auth Tokens**
91 .. |RCCEshort| replace:: Community
91 .. |RCCEshort| replace:: Community
92 .. |RCEEshort| replace:: Enterprise
92 .. |RCEEshort| replace:: Enterprise
93 .. |git| replace:: Git
93 .. |git| replace:: Git
94 .. |hg| replace:: Mercurial
94 .. |hg| replace:: Mercurial
95 .. |svn| replace:: Subversion
95 .. |svn| replace:: Subversion
96 .. |LDAP| replace:: LDAP / Active Directory
96 .. |LDAP| replace:: LDAP / Active Directory
97 .. |os| replace:: operating system
97 .. |os| replace:: operating system
98 .. |OS| replace:: Operating System
98 .. |OS| replace:: Operating System
99 .. |PY| replace:: Python
99 .. |PY| replace:: Python
100 .. |pr| replace:: pull request
100 .. |pr| replace:: pull request
101 .. |prs| replace:: pull requests
101 .. |prs| replace:: pull requests
102 .. |psf| replace:: Python Software Foundation
102 .. |psf| replace:: Python Software Foundation
103 .. |repo| replace:: repository
103 .. |repo| replace:: repository
104 .. |repos| replace:: repositories
104 .. |repos| replace:: repositories
105 .. |RCC| replace:: RhodeCode Control
105 .. |RCC| replace:: RhodeCode Control
106 .. |RCS| replace:: RhodeCode rcstack
106 .. |RCE| replace:: RhodeCode Enterprise
107 .. |RCE| replace:: RhodeCode Enterprise
107 .. |RCCE| replace:: RhodeCode Community
108 .. |RCCE| replace:: RhodeCode Community
108 .. |RCEE| replace:: RhodeCode Enterprise
109 .. |RCEE| replace:: RhodeCode Enterprise
109 .. |RCX| replace:: RhodeCode Extensions
110 .. |RCX| replace:: RhodeCode Extensions
110 .. |RCT| replace:: RhodeCode Tools
111 .. |RCT| replace:: RhodeCode Tools
111 .. |RCEBOLD| replace:: **RhodeCode Enterprise**
112 .. |RCEBOLD| replace:: **RhodeCode Enterprise**
112 .. |RCEITALICS| replace:: `RhodeCode Enterprise`
113 .. |RCEITALICS| replace:: `RhodeCode Enterprise`
113 .. |RNS| replace:: Release Notes
114 .. |RNS| replace:: Release Notes
114 """
115 """
115
116
116 # There are two options for replacing |today|: either, you set today to some
117 # There are two options for replacing |today|: either, you set today to some
117 # non-false value, then it is used:
118 # non-false value, then it is used:
118 # today = ''
119 # today = ''
119 # Else, today_fmt is used as the format for a strftime call.
120 # Else, today_fmt is used as the format for a strftime call.
120 # today_fmt = '%B %d, %Y'
121 # today_fmt = '%B %d, %Y'
121
122
122 # List of patterns, relative to source directory, that match files and
123 # List of patterns, relative to source directory, that match files and
123 # directories to ignore when looking for source files.
124 # directories to ignore when looking for source files.
124 exclude_patterns = [
125 exclude_patterns = [
125 # Special directories
126 # Special directories
126 "_build",
127 "_build",
127 "result",
128 "result",
128 # Other RST files
129 # Other RST files
129 "admin/rhodecode-backup.rst",
130 "admin/rhodecode-backup.rst",
130 "issue-trackers/redmine.rst",
131 "issue-trackers/redmine.rst",
131 "known-issues/error-msg-guide.rst",
132 "known-issues/error-msg-guide.rst",
132 "tutorials/docs-build.rst",
133 "tutorials/docs-build.rst",
133 "integrations/example-ext.py",
134 "integrations/example-ext.py",
134 "collaboration/supported-workflows.rst",
135 "collaboration/supported-workflows.rst",
135 ]
136 ]
136
137
137
138
138 # The reST default role (used for this markup: `text`) to use for all
139 # The reST default role (used for this markup: `text`) to use for all
139 # documents.
140 # documents.
140 # default_role = None
141 # default_role = None
141
142
142 # If true, '()' will be appended to :func: etc. cross-reference text.
143 # If true, '()' will be appended to :func: etc. cross-reference text.
143 # add_function_parentheses = True
144 # add_function_parentheses = True
144
145
145 # If true, the current module name will be prepended to all description
146 # If true, the current module name will be prepended to all description
146 # unit titles (such as .. function::).
147 # unit titles (such as .. function::).
147 # add_module_names = True
148 # add_module_names = True
148
149
149 # If true, sectionauthor and moduleauthor directives will be shown in the
150 # If true, sectionauthor and moduleauthor directives will be shown in the
150 # output. They are ignored by default.
151 # output. They are ignored by default.
151 # show_authors = False
152 # show_authors = False
152
153
153 # The name of the Pygments (syntax highlighting) style to use.
154 # The name of the Pygments (syntax highlighting) style to use.
154 pygments_style = "sphinx"
155 pygments_style = "sphinx"
155
156
156 # A list of ignored prefixes for module index sorting.
157 # A list of ignored prefixes for module index sorting.
157 # modindex_common_prefix = []
158 # modindex_common_prefix = []
158
159
159 # If true, keep warnings as "system message" paragraphs in the built documents.
160 # If true, keep warnings as "system message" paragraphs in the built documents.
160 keep_warnings = tags.has("dev")
161 keep_warnings = tags.has("dev")
161
162
162
163
163 # -- Options for HTML output ----------------------------------------------
164 # -- Options for HTML output ----------------------------------------------
164
165
165 # The theme to use for HTML and HTML Help pages. See the documentation for
166 # The theme to use for HTML and HTML Help pages. See the documentation for
166 # a list of builtin themes.
167 # a list of builtin themes.
167 html_theme = "furo"
168 html_theme = "furo"
168
169
169 # Theme options are theme-specific and customize the look and feel of a theme
170 # Theme options are theme-specific and customize the look and feel of a theme
170 # further. For a list of options available for each theme, see the
171 # further. For a list of options available for each theme, see the
171 # documentation.
172 # documentation.
172 # html_theme_options = {}
173 # html_theme_options = {}
173
174
174
175
175 # Add any paths that contain custom themes here, relative to this directory.
176 # Add any paths that contain custom themes here, relative to this directory.
176 # html_theme_path = []
177 # html_theme_path = []
177
178
178 # The name for this set of Sphinx documents. If None, it defaults to
179 # The name for this set of Sphinx documents. If None, it defaults to
179 # "<project> v<release> documentation".
180 # "<project> v<release> documentation".
180 # html_title = None
181 # html_title = None
181
182
182 # A shorter title for the navigation bar. Default is the same as html_title.
183 # A shorter title for the navigation bar. Default is the same as html_title.
183 # html_short_title = None
184 # html_short_title = None
184
185
185 # The name of an image file (relative to this directory) to place at the top
186 # The name of an image file (relative to this directory) to place at the top
186 # of the sidebar.
187 # of the sidebar.
187 # html_logo = None
188 # html_logo = None
188
189
189
190
190 #html_sidebars = {
191 #html_sidebars = {
191 # "**": ["globaltoc.html"],
192 # "**": ["globaltoc.html"],
192 #}
193 #}
193
194
194 # The name of an image file (within the static path) to use as favicon of the
195 # The name of an image file (within the static path) to use as favicon of the
195 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
196 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
196 # pixels large.
197 # pixels large.
197 html_favicon = "images/favicon.ico"
198 html_favicon = "images/favicon.ico"
198
199
199 # Add any paths that contain custom static files (such as style sheets) here,
200 # Add any paths that contain custom static files (such as style sheets) here,
200 # relative to this directory. They are copied after the builtin static files,
201 # relative to this directory. They are copied after the builtin static files,
201 # so a file named "default.css" will overwrite the builtin "default.css".
202 # so a file named "default.css" will overwrite the builtin "default.css".
202 html_static_path = ["static/css/add.css"]
203 html_static_path = ['_static']
203
204
204 # Add any extra paths that contain custom files (such as robots.txt or
205 # Add any extra paths that contain custom files (such as robots.txt or
205 # .htaccess) here, relative to this directory. These files are copied
206 # .htaccess) here, relative to this directory. These files are copied
206 # directly to the root of the documentation.
207 # directly to the root of the documentation.
207 # html_extra_path = []
208 # html_extra_path = []
208
209
209 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
210 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
210 # using the given strftime format.
211 # using the given strftime format.
211 html_last_updated_fmt = " %H:%m %b %d, %Y"
212 html_last_updated_fmt = " %H:%m %b %d, %Y"
212
213
213 # If true, SmartyPants will be used to convert quotes and dashes to
214 # If true, SmartyPants will be used to convert quotes and dashes to
214 # typographically correct entities.
215 # typographically correct entities.
215 # html_use_smartypants = True
216 # html_use_smartypants = True
216
217
217 # Custom sidebar templates, maps document names to template names.
218 # Custom sidebar templates, maps document names to template names.
218 # html_sidebars = {}
219 # html_sidebars = {}
219
220
220 # Additional templates that should be rendered to pages, maps page names to
221 # Additional templates that should be rendered to pages, maps page names to
221 # template names.
222 # template names.
222 # html_additional_pages = {}
223 # html_additional_pages = {}
223
224
224 # If false, no module index is generated.
225 # If false, no module index is generated.
225 # html_domain_indices = True
226 # html_domain_indices = True
226
227
227 # If false, no index is generated.
228 # If false, no index is generated.
228 # html_use_index = True
229 # html_use_index = True
229
230
230 # If true, the index is split into individual pages for each letter.
231 # If true, the index is split into individual pages for each letter.
231 # html_split_index = False
232 # html_split_index = False
232
233
233 # If true, links to the reST sources are added to the pages.
234 # If true, links to the reST sources are added to the pages.
234 # html_show_sourcelink = True
235 # html_show_sourcelink = True
235
236
236 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
237 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
237 html_show_sphinx = False
238 html_show_sphinx = False
238
239
239 # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
240 # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
240 # html_show_copyright = True
241 # html_show_copyright = True
241
242
242 # If true, an OpenSearch description file will be output, and all pages will
243 # If true, an OpenSearch description file will be output, and all pages will
243 # contain a <link> tag referring to it. The value of this option must be the
244 # contain a <link> tag referring to it. The value of this option must be the
244 # base URL from which the finished HTML is served.
245 # base URL from which the finished HTML is served.
245 # html_use_opensearch = ''
246 # html_use_opensearch = ''
246
247
247 # This is the file name suffix for HTML files (e.g. ".xhtml").
248 # This is the file name suffix for HTML files (e.g. ".xhtml").
248 # html_file_suffix = None
249 # html_file_suffix = None
249
250
250 # Output file base name for HTML help builder.
251 # Output file base name for HTML help builder.
251 htmlhelp_basename = "rhodecode-enterprise"
252 htmlhelp_basename = "rhodecode-enterprise"
252
253
253
254
254 # -- Options for LaTeX output ---------------------------------------------
255 # -- Options for LaTeX output ---------------------------------------------
255
256
256 latex_elements = {
257 latex_elements = {
257 "classoptions": ",oneside",
258 "classoptions": ",oneside",
258 "babel": "\\usepackage[english]{babel}",
259 "babel": "\\usepackage[english]{babel}",
259 # The paper size ('letterpaper' or 'a4paper').
260 # The paper size ('letterpaper' or 'a4paper').
260 #'papersize': 'letterpaper',
261 #'papersize': 'letterpaper',
261 # The font size ('10pt', '11pt' or '12pt').
262 # The font size ('10pt', '11pt' or '12pt').
262 #'pointsize': '10pt',
263 #'pointsize': '10pt',
263 # Additional stuff for the LaTeX preamble.
264 # Additional stuff for the LaTeX preamble.
264 #'preamble': '',
265 #'preamble': '',
265 }
266 }
266
267
267 # Grouping the document tree into LaTeX files. List of tuples
268 # Grouping the document tree into LaTeX files. List of tuples
268 # (source start file, target name, title,
269 # (source start file, target name, title,
269 # author, documentclass [howto, manual, or own class]).
270 # author, documentclass [howto, manual, or own class]).
270 latex_documents = [
271 latex_documents = [
271 (
272 (
272 "index",
273 "index",
273 "RhodeCodeEnterprise.tex",
274 "RhodeCodeEnterprise.tex",
274 "RhodeCode Enterprise",
275 "RhodeCode Enterprise",
275 "RhodeCode GmbH",
276 "RhodeCode GmbH",
276 "manual",
277 "manual",
277 ),
278 ),
278 ]
279 ]
279
280
280 # The name of an image file (relative to this directory) to place at the top of
281 # The name of an image file (relative to this directory) to place at the top of
281 # the title page.
282 # the title page.
282 # latex_logo = None
283 # latex_logo = None
283
284
284 # For "manual" documents, if this is true, then toplevel headings are parts,
285 # For "manual" documents, if this is true, then toplevel headings are parts,
285 # not chapters.
286 # not chapters.
286 # latex_use_parts = False
287 # latex_use_parts = False
287
288
288 # If true, show page references after internal links.
289 # If true, show page references after internal links.
289 latex_show_pagerefs = True
290 latex_show_pagerefs = True
290
291
291 # If true, show URL addresses after external links.
292 # If true, show URL addresses after external links.
292 latex_show_urls = "footnote"
293 latex_show_urls = "footnote"
293
294
294 # Documents to append as an appendix to all manuals.
295 # Documents to append as an appendix to all manuals.
295 # latex_appendices = []
296 # latex_appendices = []
296
297
297 # If false, no module index is generated.
298 # If false, no module index is generated.
298 # latex_domain_indices = True
299 # latex_domain_indices = True
299
300
300 # Mode for literal blocks wider than the frame. Can be
301 # Mode for literal blocks wider than the frame. Can be
301 # overflow, shrink or truncate
302 # overflow, shrink or truncate
302 pdf_fit_mode = "truncate"
303 pdf_fit_mode = "truncate"
303
304
304
305
305 # -- Options for manual page output ---------------------------------------
306 # -- Options for manual page output ---------------------------------------
306
307
307 # One entry per manual page. List of tuples
308 # One entry per manual page. List of tuples
308 # (source start file, name, description, authors, manual section).
309 # (source start file, name, description, authors, manual section).
309 man_pages = [
310 man_pages = [
310 ("index", "rhodecodeenterprise", "RhodeCode Enterprise", ["RhodeCode GmbH"], 1)
311 ("index", "rhodecodeenterprise", "RhodeCode Enterprise", ["RhodeCode GmbH"], 1)
311 ]
312 ]
312
313
313 # If true, show URL addresses after external links.
314 # If true, show URL addresses after external links.
314 # man_show_urls = False
315 # man_show_urls = False
315
316
316
317
317 # -- Options for Texinfo output -------------------------------------------
318 # -- Options for Texinfo output -------------------------------------------
318
319
319 # Grouping the document tree into Texinfo files. List of tuples
320 # Grouping the document tree into Texinfo files. List of tuples
320 # (source start file, target name, title, author,
321 # (source start file, target name, title, author,
321 # dir menu entry, description, category)
322 # dir menu entry, description, category)
322 texinfo_documents = [
323 texinfo_documents = [
323 (
324 (
324 "index",
325 "index",
325 "RhodeCodeEnterprise",
326 "RhodeCodeEnterprise",
326 "RhodeCode Enterprise",
327 "RhodeCode Enterprise",
327 "RhodeCode Docs Team",
328 "RhodeCode Docs Team",
328 "RhodeCodeEnterprise",
329 "RhodeCodeEnterprise",
329 "RhodeCode Docs Project",
330 "RhodeCode Docs Project",
330 "Miscellaneous",
331 "Miscellaneous",
331 ),
332 ),
332 ]
333 ]
333
334
334 # Documents to append as an appendix to all manuals.
335 # Documents to append as an appendix to all manuals.
335 # texinfo_appendices = []
336 # texinfo_appendices = []
336
337
337 # If false, no module index is generated.
338 # If false, no module index is generated.
338 # texinfo_domain_indices = True
339 # texinfo_domain_indices = True
339
340
340 # How to display URL addresses: 'footnote', 'no', or 'inline'.
341 # How to display URL addresses: 'footnote', 'no', or 'inline'.
341 # texinfo_show_urls = 'footnote'
342 # texinfo_show_urls = 'footnote'
342
343
343 # If true, do not generate a @detailmenu in the "Top" node's menu.
344 # If true, do not generate a @detailmenu in the "Top" node's menu.
344 # texinfo_no_detailmenu = False
345 # texinfo_no_detailmenu = False
345
346
346 # We want to see todo notes in case of a pre-release build of the documentation
347 # We want to see todo notes in case of a pre-release build of the documentation
347 todo_include_todos = tags.has("dev")
348 todo_include_todos = tags.has("dev")
@@ -1,93 +1,92 b''
1 |RCE|
1 |RCE|
2 =====
2 =====
3
3
4 |RCE| is a high-performance source code management and collaboration system.
4 |RCE| is a high-performance source code management and collaboration system.
5 It enables you to develop projects securely behind the firewall while
5 It enables you to develop projects securely behind the firewall while
6 providing collaboration tools that work with |git|, |hg|,
6 providing collaboration tools that work with |git|, |hg|,
7 and |svn| |repos|. The user interface allows you to create, edit,
7 and |svn| |repos|. The user interface allows you to create, edit,
8 and commit files and |repos| while managing their security permissions.
8 and commit files and |repos| while managing their security permissions.
9
9
10 |RCE| provides the following features:
10 |RCE| provides the following features:
11
11
12 * Source code management.
12 * Source code management.
13 * Extended permissions management.
13 * Extended permissions management.
14 * Integrated code collaboration tools.
14 * Integrated code collaboration tools.
15 * Integrated code review and notifications.
15 * Integrated code review and notifications.
16 * Scalability provided by multi-node setup.
16 * Scalability provided by multi-node setup.
17 * Fully programmable automation API.
17 * Fully programmable automation API.
18 * Web-based hook management.
18 * Web-based hook management.
19 * Native |svn| support.
19 * Native |svn| support.
20 * Migration from existing databases.
20 * Migration from existing databases.
21 * |RCE| SDK.
21 * |RCE| SDK.
22 * Built-in analytics
22 * Built-in analytics
23 * Built in integrations including: Slack, Webhooks (used for Jenkins/TeamCity and other CIs), Jira, Redmine, Hipchat
23 * Built in integrations including: Slack, Webhooks (used for Jenkins/TeamCity and other CIs), Jira, Redmine, Hipchat
24 * Pluggable authentication system.
24 * Pluggable authentication system.
25 * Support for AD, |LDAP|, Crowd, CAS, PAM.
25 * Support for AD, |LDAP|, Crowd, CAS, PAM.
26 * Support for external authentication via Oauth Google, Github, Bitbucket, Twitter.
26 * Support for external authentication via Oauth Google, Github, Bitbucket, Twitter.
27 * Debug modes of operation.
27 * Debug modes of operation.
28 * Private and public gists.
28 * Private and public gists.
29 * Gists with limited lifetimes and within instance only sharing.
29 * Gists with limited lifetimes and within instance only sharing.
30 * Fully integrated code search function.
30 * Fully integrated code search function.
31 * Always on SSL connectivity.
31 * Always on SSL connectivity.
32
32
33 .. only:: html
33 .. only:: html
34
34
35 Table of Contents
35 Table of Contents
36 -----------------
36 -----------------
37
37
38 .. toctree::
38 .. toctree::
39 :maxdepth: 1
39 :maxdepth: 1
40 :caption: Admin Documentation
40 :caption: Admin Documentation
41
41
42 install/quick-start
42 install/quick-start
43 install/install-database
43 install/install-database
44 install/install-steps
44 install/install-steps
45 admin/system-overview
45 admin/system-overview
46 nix/default-env
47 admin/system-admin
46 admin/system-admin
48 admin/user-admin
47 admin/user-admin
49 admin/repo-admin
48 admin/repo-admin
50 admin/security-tips
49 admin/security-tips
51 auth/auth
50 auth/auth
52 issue-trackers/issue-trackers
51 issue-trackers/issue-trackers
53 admin/lab-settings
52 admin/lab-settings
54
53
55 .. toctree::
54 .. toctree::
56 :maxdepth: 1
55 :maxdepth: 1
57 :caption: Feature Documentation
56 :caption: Feature Documentation
58
57
59 collaboration/collaboration
58 collaboration/collaboration
60 collaboration/review-notifications
59 collaboration/review-notifications
61 collaboration/pull-requests
60 collaboration/pull-requests
62 code-review/code-review
61 code-review/code-review
63 integrations/integrations
62 integrations/integrations
64
63
65 .. toctree::
64 .. toctree::
66 :maxdepth: 1
65 :maxdepth: 1
67 :caption: User Documentation
66 :caption: User Documentation
68
67
69 usage/basic-usage
68 usage/basic-usage
70 tutorials/tutorials
69 tutorials/tutorials
71
70
72 .. toctree::
71 .. toctree::
73 :maxdepth: 1
72 :maxdepth: 1
74 :caption: Developer Documentation
73 :caption: Developer Documentation
75
74
76 api/api
75 api/api
77 tools/rhodecode-tools
76 tools/rhodecode-tools
78 extensions/extensions-hooks
77 extensions/extensions-hooks
79 contributing/contributing
78 contributing/contributing
80
79
81 .. toctree::
80 .. toctree::
82 :maxdepth: 2
81 :maxdepth: 2
83 :caption: RhodeCode Control Documentation
82 :caption: RhodeCode rcstack Documentation
84
83
85 RhodeCode Installer <https://docs.rhodecode.com/RhodeCode-Control/>
84 RhodeCode Installer <https://docs.rhodecode.com/rcstack/>
86
85
87 .. toctree::
86 .. toctree::
88 :maxdepth: 1
87 :maxdepth: 1
89 :caption: About
88 :caption: About
90
89
90 release-notes/release-notes
91 known-issues/known-issues
91 known-issues/known-issues
92 release-notes/release-notes
93 admin/glossary
92 admin/glossary
@@ -1,14 +1,13 b''
1 .. _rhodecode-post-instal-ref:
1 .. _rhodecode-post-install-ref:
2
2
3 Post Installation Tasks
3 Post Installation Tasks
4 =======================
4 =======================
5
5
6 The following tasks are the most common post installation requirements. Use
6 The following tasks are the most common post installation requirements. Use
7 the information in these sections to configure your instance of |RCE|.
7 the information in these sections to configure your instance of |RCE|.
8
8
9 .. toctree::
9 .. toctree::
10
10
11 setup-email
11 setup-email
12 database-string
13 configure-celery
12 configure-celery
14 migrate-repos
13 migrate-repos
@@ -1,122 +1,92 b''
1 .. _quick-start:
1 .. _quick-start:
2
2
3 Quick Start Installation Guide
3 Quick Start Installation Guide
4 ==============================
4 ==============================
5
5
6 .. important::
6 .. important::
7
7
8 These are quick start instructions. To optimize your |RCE|,
8 These are quick start instructions. To optimize your |RCE|,
9 |RCC|, and |RCT| usage, read the more detailed instructions in our guides.
9 |RCC|, and |RCT| usage, read the more detailed instructions in our guides.
10 For detailed installation instructions, see
10 For detailed installation instructions, see
11 :ref:`RhodeCode Control Documentation <control:rcc>`
11 :ref:`RhodeCode rcstack Documentation <rcstack:installation>`
12
13 .. tip::
14
12
15 If using a non-SQLite database, install and configure the database, create
13
16 a new user, and grant permissions. You will be prompted for this user's
17 credentials during |RCE| installation. See the relevant database
18 documentation for more details.
19
14
20 To get |RCE| up and running, run through the below steps:
15 To get |RCE| up and running, run through the below steps:
21
16
22 1. Download the latest |RCC| installer from `rhodecode.com/download`_.
17 1. Register to get the latest |RCC| installer instruction from `rhodecode.com/download`_.
23 If you don't have an account, sign up at `rhodecode.com/register`_.
18 If you don't have an account, sign up at `rhodecode.com/register`_.
24
19
25 2. Run the |RCC| installer and accept the End User Licence using the
20 2. Run the |RCS| installer and start init process.
26 following example:
21 following example:
27
22
28 .. code-block:: bash
23 .. code-block:: bash
29
24
30 $ chmod +x RhodeCode-installer-linux-*
25 mkdir docker-rhodecode && cd docker-rhodecode
31 $ ./RhodeCode-installer-linux-*
26 curl -L -s -o rcstack https://dls.rhodecode.com/get-rcstack && chmod +x rcstack
32
27
33 Do you accept the RhodeCode Control license?
28 ./rcstack init
34 Press [Y] to accept license and [V] to view license text: y
35
29
36
30
37 .. important::
31 .. important::
38
32
39 We recommend running RhodeCode as a non-root user, such as `rhodecode`;
33 We recommend running RhodeCode as a non-root user, such as `rhodecode`;
40 this user must have a proper home directory.
34 this user must have a proper home directory and sudo permissions (to start Docker)
41 Either log in as that user to install the software, or do it as root
35 Either log in as that user to install the software, or do it as root
42 with `sudo -i -u rhodecode ./RhodeCode-installer-linux-*`
36 with `sudo -i -u rhodecode ./rcstack init`
43
37
44
38
45 3. Install a VCS Server, and configure it to start at boot.
39 3. Follow instructions on |RCS| documentation pages
40
41 :ref:`Quick install tutorial <rcstack:quick_installation>`
42
43 4. Check stack status
44
45 .. code-block:: bash
46
47 ./rcstack status
48
49
50 Output should look similar to this:
46
51
47 .. code-block:: bash
52 .. code-block:: bash
48
53
49 $ rccontrol install VCSServer
54 ---
50
55 CONTAINER ID IMAGE STATUS NAMES PORTS
51 Agree to the licence agreement? [y/N]: y
56 ef54fc528e3a traefik:v2.9.5 Up 2 hours rc_cluster_router-traefik-1 0.0.0.0:80->80/tcp, :::80->80/tcp
52 IP to start the server on [127.0.0.1]:
57 f3ea0539e8b0 rhodecode/rhodecode-ee:4.28.0 Up 2 hours (healthy) rc_cluster_apps-rhodecode-1 0.0.0.0:10020->10020/tcp, :::10020->10020/tcp
53 Port for the server to start [10005]:
58 2be52ba58ffe rhodecode/rhodecode-ee:4.28.0 Up 2 hours (healthy) rc_cluster_apps-vcsserver-1
54 Creating new instance: vcsserver-1
59 7cd730ad3263 rhodecode/rhodecode-ee:4.28.0 Up 2 hours (healthy) rc_cluster_apps-celery-1
55 Installing RhodeCode VCSServer
60 dfa231342c87 rhodecode/rhodecode-ee:4.28.0 Up 2 hours (healthy) rc_cluster_apps-celery-beat-1
56 Configuring RhodeCode VCS Server ...
61 d3d76ce2de96 rhodecode/rhodecode-ee:4.28.0 Up 2 hours (healthy) rc_cluster_apps-sshd-1
57 Supervisord state is: RUNNING
62 daaac329414b rhodecode/rhodecode-ee:4.28.0 Up 2 hours (healthy) rc_cluster_apps-svn-1
58 Added process group vcsserver-1
63 7b8504fb9acb nginx:1.23.2 Up 2 hours (healthy) rc_cluster_services-nginx-1 80/tcp
59
64 7279c25feb6b elasticsearch:6.8.23 Up 2 hours (healthy) rc_cluster_services-elasticsearch-1 9200/tcp, 9300/tcp
60
65 19fb93587493 redis:7.0.5 Up 2 hours (healthy) rc_cluster_services-redis-1 6379/tcp
61 4. Install |RCEE| or |RCCE|. If using MySQL or PostgreSQL, during
66 fb77fb6496c6 channelstream/channelstream:0.7.1 Up 2 hours (healthy) rc_cluster_services-channelstream-1 8000/tcp
62 installation you'll be asked for your database credentials, so have them at hand.
67 cb6c5c022f5b postgres:14.6 Up 2 hours (healthy) rc_cluster_services-database-1 5432/tcp
63 Mysql or Postgres needs to be running and a new database needs to be created.
64 You don't need any credentials or to create a database for SQLite.
65
66 .. code-block:: bash
67 :emphasize-lines: 11-16
68
69 $ rccontrol install Community
70
71 or
72
73 $ rccontrol install Enterprise
74
68
75 Username [admin]: username
69 At this point you should be able to access:
76 Password (min 6 chars):
77 Repeat for confirmation:
78 Email: your@mail.com
79 Respositories location [/home/brian/repos]:
80 IP to start the Enterprise server on [127.0.0.1]:
81 Port for the Enterprise server to use [10004]:
82 Database type - [s]qlite, [m]ysql, [p]ostresql:
83 PostgreSQL selected
84 Database host [127.0.0.1]:
85 Database port [5432]:
86 Database username: db-user-name
87 Database password: somepassword
88 Database name: example-db-name
89
70
90 5. Check the status of your installation. You |RCEE|/|RCCE| instance runs
71 - RhodeCode instance at your domain entered, e.g http://rhodecode.local, the default access
91 on the URL displayed in the status message.
72 credentials are generated and stored inside .runtime.env.
92
73 For example::
93 .. code-block:: bash
94
95 $ rccontrol status
96
74
97 - NAME: enterprise-1
75 RHODECODE_USER_NAME=admin
98 - STATUS: RUNNING
76 RHODECODE_USER_PASS=super-secret-password
99 - TYPE: Enterprise
100 - VERSION: 4.1.0
101 - URL: http://127.0.0.1:10003
102
77
103 - NAME: vcsserver-1
104 - STATUS: RUNNING
105 - TYPE: VCSServer
106 - VERSION: 4.1.0
107 - URL: http://127.0.0.1:10001
108
78
109 .. note::
79 .. note::
110
80
111 Recommended post quick start install instructions:
81 Recommended post quick start install instructions:
112
82
113 * Read the documentation
83 * Read the documentation
114 * Carry out the :ref:`rhodecode-post-instal-ref`
84 * Carry out the :ref:`rhodecode-post-install-ref`
115 * Set up :ref:`indexing-ref`
85 * Set up :ref:`indexing-ref`
116 * Familiarise yourself with the :ref:`rhodecode-admin-ref` section.
86 * Familiarise yourself with the :ref:`rhodecode-admin-ref` section.
117
87
118 .. _rhodecode.com/download/: https://rhodecode.com/download/
88 .. _rhodecode.com/download/: https://rhodecode.com/download/
119 .. _rhodecode.com: https://rhodecode.com/
89 .. _rhodecode.com: https://rhodecode.com/
120 .. _rhodecode.com/register: https://rhodecode.com/register/
90 .. _rhodecode.com/register: https://rhodecode.com/register/
121 .. _rhodecode.com/download: https://rhodecode.com/download/
91 .. _rhodecode.com/download: https://rhodecode.com/download/
122
92
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now