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/

Roundup Issue Tracker: http://roundup-tracker.org/