Running wiki-to-print on the server: Difference between revisions

From creative crowd wiki
Jump to navigation Jump to search
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__TOC__
__TOC__


'''Official disclaimer''': Many things can happen, 502 errors fly around your ears, wiki-to-print is not a product :) as long as it keeps running we're happy.


├── Makefile
BUT...
├── api.py
├── plugins
├── readme.md
├── requirements.txt
├── static
├── templates
├── update.py
└── web-interface.py


* <code>web-interface.py</code>: the flask application
If you're stuck, this may be of use.
* <code>api.py</code>: script with all the functions that are used by the flask application


===To run wiki-to-print in the background===
==Wiki-to-print as a service==
 
Wiki-to-print is a Flask application that runs in the background as a service, using a systemd service file.


  $ sudo service wiki2print status
  $ sudo service wiki2print status
  $ sudo service wiki2print start
  $ sudo service wiki2print start
  $ sudo service wiki2print stop
  $ sudo service wiki2print stop
  $ sudo service wiki2print restart
  $ sudo service wiki2print restart


The service is configured at: <code>/etc/systemd/system/wiki2print.service</code>
* The service is configured at: <code>/etc/systemd/system/wiki-to-print.service</code>
* Here is an example of that file: https://git.vvvvvvaria.org/varia/wiki-to-print/src/branch/master/wiki-to-print.service.example
 
==Debugging==


===For debugging (on the server)===
===For debugging (on the server)===


You can find the files of wiki-to-print here:
Stop the wiki2print service:


  $ cd /var/www/wiki2print/web-interface/
  $ sudo service wiki2print stop


You can run the flask application directly (instead of running it as a systemd service):
Then run wiki-to-print manually from the folder where it is installed. First go to this folder:
 
$ cd /var/www/wiki-to-print/wiki-to-print/
 
And then run the application:


  $ make server
  $ make server


If you add prints statements in the python files you can see the result in the terminal.
And if needed, you can add print statements in the python files to dive deeper into the code.


===For debugging (through a local installation)===
===For debugging (through a local installation)===
Line 48: Line 48:


==jobrunner==
==jobrunner==
MediaWiki comes with a maintenance script called <code>RunJobs.php</code> that writes changes to the database. The job queue is a built-in feature of MediaWiki that is made to increase the performance on large wikis.


There is a script called <code>jobrunner.sh</code> in <code>/var/www/html/wiki/</code> that is based on: https://www.mediawiki.org/wiki/Manual:Job_queue#Continuous_service
On CC we use a script called <code>jobrunner.sh</code> in <code>/var/www/html/wiki/</code> that is based on: https://www.mediawiki.org/wiki/Manual:Job_queue#Continuous_service


It runs the MediaWiki jobs every minute.  
It runs the MediaWiki maintenance script <code>RunJobs.php</code> '''every 10 seconds'''.  


It is installed on CC and runs in the background as a system-d service, called "jobrunner", which can be used with:
It is installed on CC and runs in the background as a systemd service, called "jobrunner", which can be used with:


  $ sudo service jobrunner status
  $ sudo service jobrunner status
Line 60: Line 61:
  $ sudo service jobrunner reload
  $ sudo service jobrunner reload


The service is configured at: <code>/etc/systemd/system/jobrunner.service</code>
* The service is configured at: <code>/etc/systemd/system/jobrunner.service</code>
* This is an example of the service file:
 
[Unit]
Description=MediaWiki Job runner
[Service]
ExecStart=/var/www/html/wiki/jobrunner.sh
Nice=10
ProtectSystem=full
User=www-data
OOMScoreAdjust=200
StandardOutput=journal
[Install]
WantedBy=multi-user.target


[[Category:Sysadmin]]
[[Category:Sysadmin]]
[[Category:Wiki-to-print]]

Latest revision as of 15:58, 22 August 2023

Official disclaimer: Many things can happen, 502 errors fly around your ears, wiki-to-print is not a product :) as long as it keeps running we're happy.

BUT...

If you're stuck, this may be of use.

Wiki-to-print as a service

Wiki-to-print is a Flask application that runs in the background as a service, using a systemd service file.

$ sudo service wiki2print status
$ sudo service wiki2print start
$ sudo service wiki2print stop
$ sudo service wiki2print restart

Debugging

For debugging (on the server)

Stop the wiki2print service:

$ sudo service wiki2print stop

Then run wiki-to-print manually from the folder where it is installed. First go to this folder:

$ cd /var/www/wiki-to-print/wiki-to-print/

And then run the application:

$ make server

And if needed, you can add print statements in the python files to dive deeper into the code.

For debugging (through a local installation)

$ git clone ssh://gitea@vvvvvvaria.org:12345/varia/wiki-to-print.git
$ cd wiki-to-print/wiki-to-print/web-interface/
$ make setup
$ make local

jobrunner

MediaWiki comes with a maintenance script called RunJobs.php that writes changes to the database. The job queue is a built-in feature of MediaWiki that is made to increase the performance on large wikis.

On CC we use a script called jobrunner.sh in /var/www/html/wiki/ that is based on: https://www.mediawiki.org/wiki/Manual:Job_queue#Continuous_service

It runs the MediaWiki maintenance script RunJobs.php every 10 seconds.

It is installed on CC and runs in the background as a systemd service, called "jobrunner", which can be used with:

$ sudo service jobrunner status
$ sudo service jobrunner start
$ sudo service jobrunner stop
$ sudo service jobrunner reload
  • The service is configured at: /etc/systemd/system/jobrunner.service
  • This is an example of the service file:
[Unit]
Description=MediaWiki Job runner

[Service]
ExecStart=/var/www/html/wiki/jobrunner.sh
Nice=10
ProtectSystem=full
User=www-data
OOMScoreAdjust=200
StandardOutput=journal

[Install]
WantedBy=multi-user.target