Mercurial > p > roundup > code
comparison doc/installation.txt @ 8416:370689471a08 issue2550923_computed_property
merge from default branch accumulated changes since Nov 2023
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 17 Aug 2025 16:12:25 -0400 |
| parents | 036ba3496232 |
| children | 1522e0e15903 |
comparison
equal
deleted
inserted
replaced
| 7693:78585199552a | 8416:370689471a08 |
|---|---|
| 72 program you can run ``python demo.py`` instead.) | 72 program you can run ``python demo.py`` instead.) |
| 73 | 73 |
| 74 .. _install the source: | 74 .. _install the source: |
| 75 | 75 |
| 76 1. ``python3 -m pip download roundup`` | 76 1. ``python3 -m pip download roundup`` |
| 77 | |
| 78 * (If you are really impatient, you probably don't want to | |
| 79 `verify the downloaded file <security.html#verify-source-tarball>`_.) | |
| 80 | |
| 77 2. ``tar -xzvf roundup-2.2.0.tar.gz`` | 81 2. ``tar -xzvf roundup-2.2.0.tar.gz`` |
| 78 | 82 |
| 79 * if you don't have a tar command, ``python3 -c "import tarfile, sys; tarfile.open(sys.argv[1]).extractall();" roundup-2.2.0.tar.gz`` can be used. | 83 * if you don't have a tar command, ``python3 -c "import tarfile, sys; tarfile.open(sys.argv[1]).extractall();" roundup-2.2.0.tar.gz`` can be used. |
| 80 | 84 |
| 81 3. ``cd roundup-2.2.0`` | 85 3. ``cd roundup-2.2.0`` |
| 172 can remove the tracker using ``rm -f`` on the ``demo`` directory. | 176 can remove the tracker using ``rm -f`` on the ``demo`` directory. |
| 173 | 177 |
| 174 Prerequisites | 178 Prerequisites |
| 175 ============= | 179 ============= |
| 176 | 180 |
| 177 Roundup requires Python 2.7 [3]_ or 3.6 or newer with a functioning anydbm | 181 Roundup requires Python 3.7 or newer with a functioning anydbm |
| 178 or sqlite module. The version installed by most vendors should work if | 182 or sqlite module. The version installed by most vendors should work if |
| 179 it meets the version requirements. If necessary, you can download the | 183 it meets the version requirements. If necessary, you can download the |
| 180 latest version from https://www.python.org/. It is highly recommended | 184 latest version from https://www.python.org/. It is highly recommended |
| 181 that users install the latest patch version of Python as these contain | 185 that users install the latest patch version of Python as these contain |
| 182 many fixes to serious bugs. | 186 many fixes to serious bugs. |
| 242 | 246 |
| 243 gpg | 247 gpg |
| 244 If gpg_ is installed you can configure the mail gateway to perform | 248 If gpg_ is installed you can configure the mail gateway to perform |
| 245 verification or decryption of incoming OpenPGP MIME messages. When | 249 verification or decryption of incoming OpenPGP MIME messages. When |
| 246 configured, you can require email to be cryptographically signed | 250 configured, you can require email to be cryptographically signed |
| 247 before roundup will allow it to make modifications to issues. | 251 before roundup will allow it to make modifications to issues. (Note |
| 252 with python 3.13 or newer on some platforms, you may need to install | |
| 253 version 2.0 of gpg from test.pypi.org. See the `gpg install | |
| 254 directions in the upgrading document`_. | |
| 255 | |
| 248 | 256 |
| 249 jinja2 | 257 jinja2 |
| 250 To use the jinja2 template (may still be experimental, check out | 258 To use the jinja2 template (may still be experimental, check out |
| 251 its TEMPLATE-INFO.txt file) you need | 259 its TEMPLATE-INFO.txt file) you need |
| 252 to have the jinja2_ template engine installed. | 260 to have the jinja2_ template engine installed. |
| 253 | 261 |
| 262 defusedxml | |
| 263 If you are going to enable and use the XMLRPC endpoint, you should | |
| 264 install the defusedxml_ module. It will still work with the default | |
| 265 xmlrpc standard library, but it will log a warning when used. | |
| 266 | |
| 267 .. _install/docutils: | |
| 268 | |
| 254 docutils | 269 docutils |
| 255 To use ReStructuredText rendering you need to have the `docutils`_ | 270 To use ReStructuredText rendering you need to have the `docutils`_ |
| 256 package installed. | 271 package installed. |
| 257 | 272 |
| 273 .. _install/markdown: | |
| 274 | |
| 258 markdown, markdown2 or mistune | 275 markdown, markdown2 or mistune |
| 259 To use markdown rendering you need to have the markdown_, | 276 To use markdown rendering (as supplied by the jinja2 template) |
| 260 markdown2_ (2.4.9 known to be broken, 2.3.3 known to work), | 277 you need to have the markdown_, |
| 261 or mistune_ (v0.8.4 tested; python3 only) package installed. | 278 markdown2_ (2.4.9 known to be broken, 2.3.3, 2.4.10+ known to |
| 279 work), or mistune_ (v0.8.4 tested; python3 only) package installed. | |
| 262 | 280 |
| 263 zstd, brotli | 281 zstd, brotli |
| 264 To have roundup compress the returned data using one of these | 282 To have roundup compress the returned data using one of these |
| 265 algorithms, you can install one or more of zstd_ or brotli_. | 283 algorithms, you can install one or more of zstd_ or brotli_. |
| 266 Roundup's responses can always be compressed with gzip from the | 284 Roundup's responses can always be compressed with gzip from the |
| 274 using the redis-py_ pypi package. See the section on | 292 using the redis-py_ pypi package. See the section on |
| 275 `Using Redis for Session Databases`_ in the `administration | 293 `Using Redis for Session Databases`_ in the `administration |
| 276 guide`_ for details. | 294 guide`_ for details. |
| 277 | 295 |
| 278 pyjwt | 296 pyjwt |
| 279 To use JWT (JSON web tokens) for login (experimental), install `pyjwt`_ | 297 To use JWT (JSON web tokens) for login (experimental), install |
| 280 (v1.7.1, v2.0.1 tested). If you don't have it installed, JWT's | 298 `pyjwt`_ (v1.7.1, v2.0.1 tested). If you don't have it |
| 281 are not supported. | 299 installed, JWT's are not supported. |
| 300 | |
| 301 polib | |
| 302 Roundup includes translations in various languages. To extract | |
| 303 strings designated for translation from your tracker's HTML | |
| 304 templates, you can utilize `roundup-gettext`. However, if you | |
| 305 wish to extract translatable strings from the Python code in | |
| 306 tracker's detectors or extensions directories using | |
| 307 roundup-gettext, you must install polib_. See the `developer's | |
| 308 guide`_ for details on translating your tracker. | |
| 282 | 309 |
| 283 pywin32 - Windows Service | 310 pywin32 - Windows Service |
| 284 You can run Roundup as a Windows service if pywin32_ is installed. | 311 You can run Roundup as a Windows service if pywin32_ is installed. |
| 285 Otherwise it must be started manually. | 312 Otherwise it must be started manually. |
| 286 | 313 |
| 293 mail gateway you must install the requests_ library. | 320 mail gateway you must install the requests_ library. |
| 294 | 321 |
| 295 .. _Using Redis for Session Databases: | 322 .. _Using Redis for Session Databases: |
| 296 admin_guide.html#using-redis-for-session-databases | 323 admin_guide.html#using-redis-for-session-databases |
| 297 | 324 |
| 298 .. [3] Do not use Python 2 for new installs. The continuous | 325 .. _gpg install directions in the upgrading document: |
| 299 integration and other services used for developing Roundup | 326 upgrading.html#directions-for-installing-gpg |
| 300 are dropping support for Python 2. Also optional packages | |
| 301 are dropping Python 2 support. As a result Python 2 may | |
| 302 not be supported for many more release cycles. | |
| 303 | 327 |
| 304 Installing Roundup | 328 Installing Roundup |
| 305 ================== | 329 ================== |
| 306 | 330 |
| 307 To get a production installation running will take 15-30 minutes. If | 331 To get a production installation running will take 15-30 minutes. If |
| 476 prompted:: | 500 prompted:: |
| 477 | 501 |
| 478 Admin Password: | 502 Admin Password: |
| 479 Confirm: | 503 Confirm: |
| 480 | 504 |
| 481 Note: running this command will *destroy any existing data in the | 505 Note: running this command will *destroy any existing data in |
| 482 database*. In the case of MySQL and PostgreSQL, any existing database | 506 the database*. In the case of MySQL and PostgreSQL, any existing |
| 483 will be dropped and re-created. | 507 database (or optionally database schema for PostgreSQL) will be |
| 508 dropped and re-created. | |
| 484 | 509 |
| 485 Once this is done, the tracker has been created. See the note in | 510 Once this is done, the tracker has been created. See the note in |
| 486 the `administration guide`_ on how to :ref:`initialise a | 511 the `administration guide`_ on how to :ref:`initialise a |
| 487 tracker without being prompted for the password <initpw>` or | 512 tracker without being prompted for the password <initpw>` or |
| 488 exposing the password on the command line. | 513 exposing the password on the command line. |
| 605 driver to provide a very fast | 630 driver to provide a very fast |
| 606 backend. This is not suitable for trackers which will have many | 631 backend. This is not suitable for trackers which will have many |
| 607 simultaneous users, but requires much less installation and maintenance | 632 simultaneous users, but requires much less installation and maintenance |
| 608 effort than more scalable postgresql and mysql backends. | 633 effort than more scalable postgresql and mysql backends. |
| 609 | 634 |
| 610 SQLite is supported via PySQLite versions 1.1.7, 2.1.0 and sqlite3 (the last | 635 SQLite is supported via PySQLite version 2.1.0 and sqlite3 (the last |
| 611 being bundled with Python 2.5+) | 636 being bundled with Python 2.5+) |
| 612 | 637 |
| 613 Installed SQLite should be the latest version available (3.3.8 is known | 638 Installed SQLite should be the latest version available (3.9.0 or newer). |
| 614 to work, 3.1.3 is known to have problems). | 639 |
| 640 .. _fts5-testing: | |
| 641 | |
| 642 Installation of Roundup 2.2.0 or newer requires that the installed | |
| 643 SQLite supports FTS5. This is required even if you are not going to | |
| 644 use FTS5 for full text searching. FTS5 was included in SQLite | |
| 645 release 3.9.0 in October 2015. However some vendors choose not to | |
| 646 include it. RedHat 7's native sqlite3 is known to not work. | |
| 647 | |
| 648 You can check your SQLite by using the command line:: | |
| 649 | |
| 650 echo 'pragma compile_options' | sqlite3 | grep FTS5 | |
| 651 | |
| 652 it should output ``ENABLE_FTS5`` if FTS5 is supported. | |
| 653 | |
| 654 You can check using the same version of Python you use for running | |
| 655 Roundup with:: | |
| 656 | |
| 657 import sqlite3 | |
| 658 | |
| 659 con = sqlite3.connect(':memory:') | |
| 660 cur = con.cursor() | |
| 661 cur.execute('pragma compile_options;') | |
| 662 available_pragmas = cur.fetchall() | |
| 663 con.close() | |
| 664 | |
| 665 The output should include ``('ENABLE_FTS5',)`` in the output. | |
| 615 | 666 |
| 616 Roundup supports using `SQLite's full text search capability | 667 Roundup supports using `SQLite's full text search capability |
| 617 <admin_guide.html#sqlite-details>`_. This | 668 <admin_guide.html#sqlite-details>`_. This |
| 618 can improve searching if you are not installing another indexer like | 669 can improve searching if you are not installing another indexer like |
| 619 xapian or whoosh. It works best with English text. | 670 xapian or whoosh. It works best with English text. |
| 702 or ``c:\winnt\system32\inetsrv\adminsamples\`` or | 753 or ``c:\winnt\system32\inetsrv\adminsamples\`` or |
| 703 ``c:\winnt\system32\inetsrv\adminscripts\`` depending on your installation. | 754 ``c:\winnt\system32\inetsrv\adminscripts\`` depending on your installation. |
| 704 | 755 |
| 705 See: | 756 See: |
| 706 | 757 |
| 707 https://learn.microsoft.com/en-us/iis/web-dev-reference/server-variables | 758 https://github.com/MicrosoftDocs/iis-docs/blob/main/iis/web-dev-reference/server-variables.md |
| 708 | 759 |
| 709 More information about ISS setup may be found at: | 760 More information about IIS setup may be found at: |
| 710 | 761 |
| 711 https://docs.microsoft.com/en-us/iis/ | 762 https://learn.microsoft.com/en-us/iis/ |
| 712 | 763 |
| 713 Copy the ``share/roundup/cgi-bin/roundup-cgi`` | 764 Copy the ``share/roundup/cgi-bin/roundup-cgi`` |
| 714 (``frontends/roundup.cgi`` in source tree) file to your web | 765 (``frontends/roundup.cgi`` in source tree) file to your web |
| 715 server's ``cgi-bin`` directory. You will need to configure it to | 766 server's ``cgi-bin`` directory. You will need to configure it to |
| 716 tell it where your tracker home is. You can do this either: | 767 tell it where your tracker home is. You can do this either: |
| 839 - roundup is running in the system python instance (e.g. no virtual | 890 - roundup is running in the system python instance (e.g. no virtual |
| 840 environment) | 891 environment) |
| 841 - the tracker ``mytracker`` is installed in the ``trackers`` folder of | 892 - the tracker ``mytracker`` is installed in the ``trackers`` folder of |
| 842 home directory of a user called ``admin``. Thus, the absolute path to | 893 home directory of a user called ``admin``. Thus, the absolute path to |
| 843 the tracker home directory is ``/home/admin/trackers/mytracker``. | 894 the tracker home directory is ``/home/admin/trackers/mytracker``. |
| 844 - the server has a static public IP address of 11.11.11.101 | 895 - the server has a static public IP address of 198.51.100.25 |
| 845 | 896 |
| 846 Install mod-wsgi | 897 Install mod-wsgi |
| 847 ~~~~~~~~~~~~~~~~ | 898 ~~~~~~~~~~~~~~~~ |
| 848 | 899 |
| 849 You can install/build it using the python package manager pip, or | 900 You can install/build it using the python package manager pip, or |
| 887 rule. | 938 rule. |
| 888 5. Test with ``mod_wsgi-express start-server``. This should serve | 939 5. Test with ``mod_wsgi-express start-server``. This should serve |
| 889 up content on localhost port 8000. You can then direct a browser on | 940 up content on localhost port 8000. You can then direct a browser on |
| 890 the server itself to ``http://localhost:8000/`` or on another machine at | 941 the server itself to ``http://localhost:8000/`` or on another machine at |
| 891 the server's domain name or ip address followed by colon then 8000 | 942 the server's domain name or ip address followed by colon then 8000 |
| 892 (e.g. ``http://11.11.11.101:8000/``). If successful, you should see a | 943 (e.g. ``http://198.51.100.25:8000/``). If successful, you should see a |
| 893 Malt Whiskey image. | 944 Malt Whiskey image. |
| 894 | 945 |
| 895 Package manager install of mod_wsgi | 946 Package manager install of mod_wsgi |
| 896 ''''''''''''''''''''''''''''''''''' | 947 ''''''''''''''''''''''''''''''''''' |
| 897 | 948 |
| 924 | 975 |
| 925 To run the tracker on Port 8000 as a foreground process | 976 To run the tracker on Port 8000 as a foreground process |
| 926 ''''''''''''''''''''''''''''''''''''''''''''''''''''''' | 977 ''''''''''''''''''''''''''''''''''''''''''''''''''''''' |
| 927 | 978 |
| 928 1. Change the ``tracker.web`` url in ``config.ini`` to port 8000 at the | 979 1. Change the ``tracker.web`` url in ``config.ini`` to port 8000 at the |
| 929 server domain name or ip address (e.g. ``http://11.11.11.101:8000/``). | 980 server domain name or ip address (e.g. ``http://198.51.100.25:8000/``). |
| 930 2. Open port 8000 for TCP on the server if you didn't already do so. | 981 2. Open port 8000 for TCP on the server if you didn't already do so. |
| 931 3. ``cd`` to your tracker home directory, then run | 982 3. ``cd`` to your tracker home directory, then run |
| 932 ``mod_wsgi-express start-server wsgi.py``. | 983 ``mod_wsgi-express start-server wsgi.py``. |
| 933 4. Test by directing a browser on another machine to the url you set | 984 4. Test by directing a browser on another machine to the url you set |
| 934 ``tracker.web`` to in ``config.ini``. | 985 ``tracker.web`` to in ``config.ini``. |
| 955 | 1006 |
| 956 To run mod_wsgi on PORT 80 | 1007 To run mod_wsgi on PORT 80 |
| 957 '''''''''''''''''''''''''' | 1008 '''''''''''''''''''''''''' |
| 958 | 1009 |
| 959 1. Change the ``tracker.web`` url in ``config.ini`` to the server url | 1010 1. Change the ``tracker.web`` url in ``config.ini`` to the server url |
| 960 with no port designator. E.g. ``http://11.11.11.101``. | 1011 with no port designator. E.g. ``http://198.51.100.25``. |
| 961 2. Open port 80 on the server for TCP traffic if it isn't open already. | 1012 2. Open port 80 on the server for TCP traffic if it isn't open already. |
| 962 3. Stop the system instance of Apache to make sure it isn't holding on | 1013 3. Stop the system instance of Apache to make sure it isn't holding on |
| 963 to port 80 run: ``sudo service apache2 stop``. | 1014 to port 80 run: ``sudo service apache2 stop``. |
| 964 | 1015 |
| 965 To run as a foreground process | 1016 To run as a foreground process |
| 1234 Cherokee can run FastCGI but it also supports wsgi directly using a | 1285 Cherokee can run FastCGI but it also supports wsgi directly using a |
| 1235 wsgi server like uWSGI, Gnuicorn etc. | 1286 wsgi server like uWSGI, Gnuicorn etc. |
| 1236 | 1287 |
| 1237 To run Roundup using FastCGI, the flup_ package can be used under | 1288 To run Roundup using FastCGI, the flup_ package can be used under |
| 1238 Python 2 and Python 3. We don't have a detailed config for this, but | 1289 Python 2 and Python 3. We don't have a detailed config for this, but |
| 1239 the basic idea can be found at: | 1290 the basic idea `can be found in the wayback machine archive`_. |
| 1240 https://flask.palletsprojects.com/en/2.0.x/deploying/fastcgi/ | |
| 1241 | 1291 |
| 1242 If you have deployed Roundup using FastCGI and flup we welcome example | 1292 If you have deployed Roundup using FastCGI and flup we welcome example |
| 1243 configuration files and instructions. | 1293 configuration files and instructions. |
| 1244 | 1294 |
| 1295 .. _can be found in the wayback machine archive: | |
| 1296 https://web.archive.org/web/20241010170738/https://flask.palletsprojects.com/en/2.0.x/deploying/fastcgi/ | |
| 1245 .. _flup: https://pypi.org/project/flup/ | 1297 .. _flup: https://pypi.org/project/flup/ |
| 1246 | 1298 |
| 1247 WSGI Variations | 1299 WSGI Variations |
| 1248 --------------- | 1300 --------------- |
| 1249 | 1301 |
| 1387 ``--bind unix:///var/run/roundup/tracker.sock`` would be used for the | 1439 ``--bind unix:///var/run/roundup/tracker.sock`` would be used for the |
| 1388 nginx configuration below. | 1440 nginx configuration below. |
| 1389 | 1441 |
| 1390 If you are customizing a docker continer to use gunicorn, see | 1442 If you are customizing a docker continer to use gunicorn, see |
| 1391 https://pythonspeed.com/articles/gunicorn-in-docker/. | 1443 https://pythonspeed.com/articles/gunicorn-in-docker/. |
| 1444 | |
| 1445 .. index:: pair: web interface; Waitress | |
| 1446 single: wsgi; Waitress | |
| 1447 | |
| 1448 Waitress Installation | |
| 1449 ~~~~~~~~~~~~~~~~~~~~~ | |
| 1450 | |
| 1451 Waitress is a pure Python WSGI server. It runs on Windows and you | |
| 1452 could use IIS or other web server to reverse proxy HTTP to it. | |
| 1453 | |
| 1454 You can use Waitress to serve Roundup without a proxy. It's not | |
| 1455 recommended, but it can be used on a local network where roundup can't | |
| 1456 be accessed from the internet. | |
| 1457 | |
| 1458 Assuming you have installed Roundup in a virtual environment (venv), | |
| 1459 install ``waitress`` and ``paste`` into the same venv using | |
| 1460 pip. ``paste`` is optional, but it provides logging middleware that | |
| 1461 produces standard combined format HTTP connection logs. You need to | |
| 1462 modify the file wsgi.py (obtained from ``frontends/wsgi.py``) to | |
| 1463 invoke waitress. It will look like:: | |
| 1464 | |
| 1465 # If you installed roundup to the system locations | |
| 1466 # using pip you don't need to change this | |
| 1467 # section. If you installed roundup in a custom | |
| 1468 # location, uncomment these lines and change the | |
| 1469 # path in the append() method to your custom path. | |
| 1470 #import sys | |
| 1471 #sys.path.append('/custom/location/where/roundup/is/installed') | |
| 1472 | |
| 1473 # Obtain the WSGI request dispatcher | |
| 1474 from roundup.cgi.wsgi_handler import RequestDispatcher | |
| 1475 | |
| 1476 # Set the path to tracker home. | |
| 1477 tracker_home = 'demo' | |
| 1478 | |
| 1479 # Definition signature for app: app(environ, start_response): | |
| 1480 # If using apache mod_wsgi change app to application. | |
| 1481 app = RequestDispatcher(tracker_home) | |
| 1482 | |
| 1483 from waitress import serve | |
| 1484 # Optional replaced TransLogger(app) with app if not installed | |
| 1485 from paste.translogger import TransLogger | |
| 1486 serve(TransLogger(app), | |
| 1487 host='0.0.0.0', | |
| 1488 port=8917, | |
| 1489 url_prefix=f"/{tracker_home}/") | |
| 1490 | |
| 1491 This will make Roundup available to any host on your local network at | |
| 1492 port 8917 under the ``/demo/`` path. Run it with ``python wsgi.py``. | |
| 1493 If you want to run just on the local loopback interface, replace | |
| 1494 ``0.0.0.0`` with ``127.0.0.1`` | |
| 1495 | |
| 1496 `See the Waitress docs`_ for more info on configuring waitress | |
| 1497 including putting it behind a proxy, IPV6 support etc. | |
| 1498 | |
| 1499 .. _`See the Waitress docs`: | |
| 1500 https://docs.pylonsproject.org/projects/waitress/en/stable/ | |
| 1392 | 1501 |
| 1393 .. index:: pair: web interface; uWSGI | 1502 .. index:: pair: web interface; uWSGI |
| 1394 single: wsgi; uWSGI | 1503 single: wsgi; uWSGI |
| 1395 | 1504 |
| 1396 uWSGI Installation | 1505 uWSGI Installation |
| 1806 .. caution:: | 1915 .. caution:: |
| 1807 | 1916 |
| 1808 Docker modifies iptables firewall rules. This allows access to the | 1917 Docker modifies iptables firewall rules. This allows access to the |
| 1809 container from your local network. `See the official documentation | 1918 container from your local network. `See the official documentation |
| 1810 for details | 1919 for details |
| 1811 <https://docs.docker.com/engine/reference/commandline/run/#publish>`_. | 1920 <https://docs.docker.com/reference/cli/docker/container/run/#publish>`_. |
| 1812 UFW rules are known to be be ignored (see: | 1921 UFW rules are known to be be ignored (see: |
| 1813 https://github.com/moby/moby/issues/4737). Use ``-p | 1922 https://github.com/moby/moby/issues/4737). Use ``-p |
| 1814 127.0.0.1:ext_port:container_port`` in your docker run commands or | 1923 127.0.0.1:ext_port:container_port`` in your docker run commands or |
| 1815 implement suggestions like: https://github.com/chaifeng/ufw-docker. | 1924 implement suggestions like: https://github.com/chaifeng/ufw-docker. |
| 1816 | 1925 |
| 1907 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 2016 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 1908 | 2017 |
| 1909 Once you have initialized your tracker, any arguments placed at the | 2018 Once you have initialized your tracker, any arguments placed at the |
| 1910 end of the ``docker run`` command are passed to the ``roundup-server``. | 2019 end of the ``docker run`` command are passed to the ``roundup-server``. |
| 1911 These arguments **replace** the default arguments of ``issues=tracker``. | 2020 These arguments **replace** the default arguments of ``issues=tracker``. |
| 2021 | |
| 2022 Brief Help | |
| 2023 ~~~~~~~~~~ | |
| 2024 | |
| 2025 You can get help running the docker image:: | |
| 2026 | |
| 2027 docker run -it \ | |
| 2028 -v $PWD/tracker:/usr/src/app/tracker \ | |
| 2029 roundup-app:latest help | |
| 1912 | 2030 |
| 1913 Invoking a Shell | 2031 Invoking a Shell |
| 1914 ~~~~~~~~~~~~~~~~ | 2032 ~~~~~~~~~~~~~~~~ |
| 1915 | 2033 |
| 1916 You can invoke a shell inside the container without exec'ing into the | 2034 You can invoke a shell inside the container without exec'ing into the |
| 2082 | 2200 |
| 2083 | 2201 |
| 2084 Platform-Specific Notes | 2202 Platform-Specific Notes |
| 2085 ======================= | 2203 ======================= |
| 2086 | 2204 |
| 2205 | |
| 2206 Windows | |
| 2207 ------- | |
| 2208 | |
| 2209 .. index:: windows; choose non-default session/otk database | |
| 2210 | |
| 2211 Configure session database | |
| 2212 ~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 2213 | |
| 2214 By default the session and one time key (OTK) databases default to | |
| 2215 using anydbm as the session store. Because GNU dbm and Ndbm are | |
| 2216 available on Linux, this is a reasonable default. However Windows | |
| 2217 doesn't have compiled libraries for these databases. So it defaults to | |
| 2218 "dumb" dbm which is written in Python and is slow. So we recommend | |
| 2219 using `some other backend for your session database`_. SQLite or Redis | |
| 2220 can be used if you don't want to run a separate supported RDBMS | |
| 2221 database server. | |
| 2222 | |
| 2087 .. index:: windows; add Roundup to path | 2223 .. index:: windows; add Roundup to path |
| 2088 | 2224 |
| 2089 Windows command-line tools | 2225 Windows command-line tools |
| 2090 -------------------------- | 2226 ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 2091 | 2227 |
| 2092 To make the command-line tools accessible in Windows, you need to update | 2228 To make the command-line tools accessible in Windows, you need to update |
| 2093 the "Path" environment variable in the Registry via a dialog box. | 2229 the "Path" environment variable in the Registry via a dialog box. |
| 2094 | 2230 |
| 2095 On Windows 2000 and later: | 2231 On Windows 2000 and later: |
| 2109 Panel" is directly accessible from "Start". | 2245 Panel" is directly accessible from "Start". |
| 2110 | 2246 |
| 2111 I do not believe this is possible to do in previous versions of Windows. | 2247 I do not believe this is possible to do in previous versions of Windows. |
| 2112 | 2248 |
| 2113 Use pip to install pyreadline3 for roundup-admin line editing | 2249 Use pip to install pyreadline3 for roundup-admin line editing |
| 2114 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 2250 |
| 2115 | 2251 |
| 2116 If you install pyreadline3_ using pip, roundup-admin will support | 2252 If you install pyreadline3_ using pip, roundup-admin will support |
| 2117 command line editing and history. | 2253 command line editing and history. |
| 2118 | 2254 |
| 2119 This will remove the dreaded:: | 2255 This will remove the dreaded:: |
| 2121 Note: command history and editing not available | 2257 Note: command history and editing not available |
| 2122 | 2258 |
| 2123 warning when starting roundup-admin. | 2259 warning when starting roundup-admin. |
| 2124 | 2260 |
| 2125 Windows Server | 2261 Windows Server |
| 2126 -------------- | 2262 ~~~~~~~~~~~~~~ |
| 2127 | 2263 |
| 2128 To have the Roundup web server start up when your machine boots up, there | 2264 To have the Roundup web server start up when your machine boots up, there |
| 2129 are two different methods, the scheduler and installing the service. | 2265 are two different methods, the scheduler and installing the service. |
| 2130 | 2266 |
| 2131 .. index:: windows; use scheduler for email integration | 2267 .. index:: windows; use scheduler for email integration |
| 2132 | 2268 |
| 2133 .. _Using the Windows scheduler: | 2269 .. _Using the Windows scheduler: |
| 2134 | 2270 |
| 2135 1. Using the Windows scheduler | 2271 1. Using the Windows scheduler |
| 2136 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 2272 '''''''''''''''''''''''''''''' |
| 2137 | 2273 |
| 2138 Set up the following in Scheduled Tasks (note, the following is for a | 2274 Set up the following in Scheduled Tasks (note, the following is for a |
| 2139 cygwin setup): | 2275 cygwin setup): |
| 2140 | 2276 |
| 2141 Run | 2277 Run |
| 2163 | 2299 |
| 2164 | 2300 |
| 2165 .. index:: windows; setup Roundup a service | 2301 .. index:: windows; setup Roundup a service |
| 2166 | 2302 |
| 2167 2. Installing the roundup server as a Windows service | 2303 2. Installing the roundup server as a Windows service |
| 2168 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 2304 ''''''''''''''''''''''''''''''''''''''''''''''''''''' |
| 2169 | 2305 |
| 2170 This is more Windows oriented and will make the Roundup server run as | 2306 This is more Windows oriented and will make the Roundup server run as |
| 2171 soon as the PC starts up without any need for a login or such. It will | 2307 soon as the PC starts up without any need for a login or such. It will |
| 2172 also be available in the normal Windows Administrative Tools. | 2308 also be available in the normal Windows Administrative Tools. |
| 2173 | 2309 |
| 2204 | 2340 |
| 2205 If you are using Apache as the webserver you might want to use it with | 2341 If you are using Apache as the webserver you might want to use it with |
| 2206 mod_python instead to serve out Roundup. In that case see the mod_python | 2342 mod_python instead to serve out Roundup. In that case see the mod_python |
| 2207 instructions above for details. | 2343 instructions above for details. |
| 2208 | 2344 |
| 2345 Linux | |
| 2346 ----- | |
| 2347 | |
| 2348 Make sure you read the instructions under `UNIX environment steps`_. | |
| 2349 | |
| 2209 Sendmail smrsh | 2350 Sendmail smrsh |
| 2210 -------------- | 2351 ~~~~~~~~~~~~~~ |
| 2211 | 2352 |
| 2212 If you use Sendmail's ``smrsh`` mechanism, you will need to tell | 2353 If you use Sendmail's ``smrsh`` mechanism, you will need to tell |
| 2213 smrsh that roundup-mailgw is a valid/trusted mail handler | 2354 smrsh that roundup-mailgw is a valid/trusted mail handler |
| 2214 before it will work. | 2355 before it will work. |
| 2215 | 2356 |
| 2219 which points to the full path of your actual ``roundup-mailgw`` | 2360 which points to the full path of your actual ``roundup-mailgw`` |
| 2220 script. | 2361 script. |
| 2221 | 2362 |
| 2222 2. change your alias to ``"|roundup-mailgw <tracker_home>"`` | 2363 2. change your alias to ``"|roundup-mailgw <tracker_home>"`` |
| 2223 | 2364 |
| 2224 | |
| 2225 Linux | |
| 2226 ----- | |
| 2227 | |
| 2228 Make sure you read the instructions under `UNIX environment steps`_. | |
| 2229 | 2365 |
| 2230 | 2366 |
| 2231 Solaris | 2367 Solaris |
| 2232 ------- | 2368 ------- |
| 2233 | 2369 |
| 2279 .. _`Roundup reference`: reference.html | 2415 .. _`Roundup reference`: reference.html |
| 2280 .. _`reference documentation`: reference.html | 2416 .. _`reference documentation`: reference.html |
| 2281 .. _`preventing spam`: customizing.html#preventing-spam | 2417 .. _`preventing spam`: customizing.html#preventing-spam |
| 2282 .. _`Adding a new field to the classic schema`: | 2418 .. _`Adding a new field to the classic schema`: |
| 2283 customizing.html#adding-a-new-field-to-the-classic-schema | 2419 customizing.html#adding-a-new-field-to-the-classic-schema |
| 2420 .. _`some other backend for your session database`: | |
| 2421 admin_guide.html#configuring-session-databases | |
| 2284 .. _`Tracking different types of issues`: | 2422 .. _`Tracking different types of issues`: |
| 2285 customizing.html#tracking-different-types-of-issues | 2423 customizing.html#tracking-different-types-of-issues |
| 2286 .. _`customising roundup`: customizing.html | 2424 .. _`customising roundup`: customizing.html |
| 2287 .. _`upgrading document`: upgrading.html | 2425 .. _`upgrading document`: upgrading.html |
| 2288 .. _`administration guide`: admin_guide.html | 2426 .. _`administration guide`: admin_guide.html |
| 2297 | 2435 |
| 2298 .. _`adding MySQL users`: | 2436 .. _`adding MySQL users`: |
| 2299 https://dev.mysql.com/doc/refman/8.0/en/creating-accounts.html | 2437 https://dev.mysql.com/doc/refman/8.0/en/creating-accounts.html |
| 2300 .. _apache: https://httpd.apache.org/ | 2438 .. _apache: https://httpd.apache.org/ |
| 2301 .. _brotli: https://pypi.org/project/Brotli/ | 2439 .. _brotli: https://pypi.org/project/Brotli/ |
| 2440 .. _`developer's guide`: developers.html | |
| 2441 .. _defusedxml: https://pypi.org/project/defusedxml/ | |
| 2302 .. _docutils: https://pypi.org/project/docutils/ | 2442 .. _docutils: https://pypi.org/project/docutils/ |
| 2303 .. _flup: https://pypi.org/project/flup/ | 2443 .. _flup: https://pypi.org/project/flup/ |
| 2304 .. _gpg: https://www.gnupg.org/software/gpgme/index.html | 2444 .. _gpg: https://www.gnupg.org/software/gpgme/index.html |
| 2305 .. _jinja2: https://palletsprojects.com/p/jinja/ | 2445 .. _jinja2: https://palletsprojects.com/projects/jinja/ |
| 2306 .. _markdown: https://python-markdown.github.io/ | 2446 .. _markdown: https://python-markdown.github.io/ |
| 2307 .. _markdown2: https://github.com/trentm/python-markdown2 | 2447 .. _markdown2: https://github.com/trentm/python-markdown2 |
| 2308 .. _mistune: https://pypi.org/project/mistune/ | 2448 .. _mistune: https://pypi.org/project/mistune/ |
| 2309 .. _mod_python: https://github.com/grisha/mod_python | 2449 .. _mod_python: https://github.com/grisha/mod_python |
| 2310 .. _mod_wsgi: https://pypi.org/project/mod-wsgi/ | 2450 .. _mod_wsgi: https://pypi.org/project/mod-wsgi/ |
| 2311 .. _MySQLdb: https://pypi.org/project/mysqlclient/ | 2451 .. _MySQLdb: https://pypi.org/project/mysqlclient/ |
| 2312 .. _Olson tz database: https://www.iana.org/time-zones | 2452 .. _Olson tz database: https://www.iana.org/time-zones |
| 2453 .. _polib: https://polib.readthedocs.io | |
| 2313 .. _Psycopg2: https://www.psycopg.org/ | 2454 .. _Psycopg2: https://www.psycopg.org/ |
| 2314 .. _pyjwt: https://pypi.org/project/PyJWT/ | 2455 .. _pyjwt: https://pypi.org/project/PyJWT/ |
| 2315 .. _pyopenssl: https://pypi.org/project/pyOpenSSL/ | 2456 .. _pyopenssl: https://pypi.org/project/pyOpenSSL/ |
| 2316 .. _pyreadline3: https://pypi.org/project/pyreadline3/ | 2457 .. _pyreadline3: https://pypi.org/project/pyreadline3/ |
| 2317 .. _pysqlite: https://pysqlite.org/ | 2458 .. _pysqlite: https://pysqlite.org/ |
