1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-03-09 15:40:17 +00:00

Merge pull request #469 from iiab/master

Sync from iiab/iiab:master
This commit is contained in:
A Holt 2021-03-15 22:38:49 -04:00 committed by GitHub
commit 6b72abdd86
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 108 additions and 46 deletions

View file

@ -13,13 +13,13 @@
line: ' <policy domain="coder" rights="read" pattern="PDF" />'
state: present
- name: "Create 3 Calibre-Web folders to store data and config files: {{ calibreweb_home }}, {{ calibreweb_venv_path }}, {{ calibreweb_config }} (all set to {{ calibreweb_user }}:{{ apache_user }}, '0755')"
- name: "Create 3 Calibre-Web folders to store data and config files: {{ calibreweb_home }}, {{ calibreweb_venv_path }}, {{ calibreweb_config }} (all set to {{ calibreweb_user }}:{{ apache_user }})"
file:
state: directory
path: "{{ item }}"
owner: "{{ calibreweb_user }}" # root
group: "{{ apache_user }}" # www-data on debuntu
mode: '0755'
#mode: '0755'
with_items:
- "{{ calibreweb_home }}" # /library/calibre-web
- "{{ calibreweb_config }}" # /library/calibre-web/config
@ -74,7 +74,7 @@
dest: "{{ calibreweb_home }}" # /library/calibre-web
owner: "{{ calibreweb_user }}" # root
group: "{{ apache_user }}" # www-data on debuntu
mode: '0644'
#mode: '0644'
backup: yes
with_items:
- roles/calibre-web/files/metadata.db
@ -88,7 +88,7 @@
dest: "{{ calibreweb_config }}" # /library/calibre-web/config
owner: "{{ calibreweb_user }}" # root
group: "{{ apache_user }}" # www-data on debuntu
mode: '0644'
#mode: '0644'
backup: yes
when: not metadatadb.stat.exists
#when: calibreweb_provision

View file

@ -5,7 +5,7 @@
timeout: "{{ download_timeout }}"
when: internet_available
# 2020-01-19: https://github.com/piwheels/packages/issues/74 says the following is not longer needed...
# 2020-01-19: https://github.com/piwheels/packages/issues/74 says the following is no longer needed...
#- name: Run 'mv /etc/pip.conf /etc/pip.conf.see-iiab-issue-2139' as "TEMPORARY" workaround (2020-01-17) for piwheels.org's setuptools Python 2/3 brokenness on RPi (https://github.com/iiab/iiab/issues/2139)
# command: mv /etc/pip.conf /etc/pip.conf.see-iiab-issue-2139
# ignore_errors: yes
@ -31,7 +31,7 @@
when: not (is_debian_9 or is_debian_10 or is_ubuntu_16 or is_ubuntu_17 or is_ubuntu_18 or is_ubuntu_19)
# long form of (is_debian_11+ or is_ubuntu_20+)
- name: Use pip to install KA Lite static to {{ kalite_venv }}
- name: Use pip to install ka-lite-static to {{ kalite_venv }}
pip:
name: ka-lite-static
version: "{{ kalite_version }}"

View file

@ -1,3 +1,14 @@
.. |ss| raw:: html
<strike>
.. |se| raw:: html
</strike>
.. |nbsp| unicode:: 0xA0
:trim:
===================
Transmission README
===================
@ -17,30 +28,24 @@ Caveat emptor! (That's Latin for "Buyer Beware")
Using It
--------
Install Transmission by setting 'transmission_install' and 'transmission_enabled' to True in `/etc/iiab/local_vars.yml <http://wiki.laptop.org/go/IIAB/local_vars.yml>`_ — carefully choosing language(s) for KA Lite videos you want to download — and then run::
Install Transmission by setting 'transmission_install' and 'transmission_enabled' to True in `/etc/iiab/local_vars.yml <http://wiki.laptop.org/go/IIAB/local_vars.yml>`_ — carefully choosing language(s) for KA Lite videos you want to download — and then install IIAB. Or, if IIAB is already installed, run as root::
cd /opt/iiab/iiab
./runrole transmission
./iiab-network
Or if you prefer a complete reinstall of IIAB::
cd /opt/iiab/iiab
./iiab-install --reinstall
Login to Transmission's web interface http://box:9091 using administrative account::
Log in to Transmission's web interface http://box:9091 using administrative account::
Username: Admin
Password: changeme
Alternatively, you can run ``transmission-remote`` at the command-line.
If you prefer the command-line, you can instead run `transmission-remote <https://linux.die.net/man/1/transmission-remote>`_ commands.
Configuration
-------------
Configure Transmission using its web interface: http://box:9091
More settings can be changed within /etc/transmission-daemon/settings.json if you first ensure that the transmission-daemon.service is stopped::
More settings can be changed within `/etc/transmission-daemon/settings.json <https://github.com/holta/iiab/blob/transmission-settings/roles/transmission/templates/settings.json.j2>`_ if you first ensure that the transmission-daemon.service is stopped::
systemctl stop transmission-daemon
@ -48,12 +53,14 @@ Then edit the file::
nano /etc/transmission-daemon/settings.json
Here are some short explanations, as to what those 70+ variables mean: https://github.com/transmission/transmission/wiki/Editing-Configuration-Files
Here are some short explanations, as to what those ~68 variables mean: https://github.com/transmission/transmission/wiki/Editing-Configuration-Files
After saving your changes in 'settings.json' restart Transmission by running::
After saving your changes in 'settings.json', restart Transmission by running::
systemctl restart transmission-daemon
*2021-03-14: Transmission 2.94 and 3.00 were intermittently* **ignoring** */etc/transmission-daemon/settings.json (presumably when the file was deemed problematic/missing/etc) and creating their own* ``/var/lib/transmission-daemon/.config/transmission-daemon/settings.json`` *(i.e. suddenly a FILE instead of transmission-deamon's out-of-the-box SYMLINK to /etc/transmission-daemon/settings.json). IIAB* `PR #2707 <https://github.com/iiab/iiab/pull/2707>`_ *should fix this problem, by reversing the direction of the symlink created by apt. See* `Troubleshooting <./README.rst#Troubleshooting>`_ *below.*
Adding Torrents
---------------
@ -61,16 +68,16 @@ Transmission can facilitate provisioning content onto your IIAB, e.g. by adding
Please read the lettered instructions (A, B, C, D) in `/etc/iiab/local_vars.yml <http://wiki.laptop.org/go/IIAB/local_vars.yml>`_ and 'KA Lite Administration: What tips & tricks exist?' at http://FAQ.IIAB.IO outlining how to use Transmission to download and then install KA Lite content.
You can also download other torrents using Transmission's web interface, or by typing 'transmission-remote' at the command-line::
You can also download other torrents using Transmission's web interface, or by typing `transmission-remote <https://linux.die.net/man/1/transmission-remote>`_ at the command-line::
transmission-remote -a <path_to_the.torrent>
transmission-remote -n Admin:changeme -a <URL-or-local-path.torrent>
Known Issues
------------
* Default Transmission user/group may need fixing (https://github.com/transmission/transmission/issues/537) in some circumstances. You can set Ansible variables 'transmission_user' and 'transmission_group' e.g. in /opt/iiab/iiab/roles/transmission/defaults/main.yml (you might need 'User=' and 'Group=' in systemd unit file /lib/systemd/system/transmission-daemon.service — e.g. both might need to be set to 'debian-transmission' — if so then run 'systemctl daemon-reload' and 'systemctl restart transmission-daemon').
* |ss| Default Transmission user/group may need fixing (https://github.com/transmission/transmission/issues/537) in some circumstances. You can set Ansible variables 'transmission_user' and 'transmission_group' e.g. in /opt/iiab/iiab/roles/transmission/defaults/main.yml (you might need 'User=' and 'Group=' in systemd unit file /lib/systemd/system/transmission-daemon.service — e.g. both might need to be set to 'debian-transmission' — if so then run 'systemctl daemon-reload' and 'systemctl restart transmission-daemon'). |se| |nbsp| `PR #2703 <https://github.com/iiab/iiab/pull/2703>`_
* Random Ports: Currently it is not possible to use random ports in the range 49152-65535. It is difficult to open multiple ports in IIAB's iptables-based firewall.
* Random Ports: Currently it is not possible to use random ports in the range 49152-65535, as it's difficult to open multiple ports in IIAB's `iptables-based firewall <https://github.com/iiab/iiab/wiki/IIAB-Networking#firewall-iptables>`_.
Troubleshooting
---------------
@ -79,8 +86,34 @@ Verify that transmission-daemon is running::
systemctl status transmission-daemon
Re-check that Transmission's settings are correct here: (by following the instructions above, under 'Configuration')
Re-check that Transmission's settings are correct here: (by following the instructions above, under `Configuration <./README.rst#Configuration>`_)
::
/etc/transmission-daemon/settings.json
More advanced configuration and status are in directory ``/var/lib/transmission-daemon/info/`` (symlinked to /var/lib/transmission-daemon/.config/transmission-daemon/) here::
blocklists/
dht.dat
resume/
settings.json <- /etc/transmission-daemon/settings.json (PR #2707 CREATES THIS SYMLINK!)
stats.json
torrents/
These are further explained in https://github.com/transmission/transmission/wiki/Configuration-Files (to align with the above, apt package transmission-daemon sets user debian-transmission's home directory to ``/var/lib/transmission-daemon`` in /etc/passwd).
Logging
-------
To turn on logging and/or record the Process ID (PID), follow these instructions: https://pawelrychlicki.pl/Home/Details/59/transmission-daemon-doesnt-create-a-log-file-nor-a-pid-file-ubuntu-server-1804
This gives permissions to user ``debian-transmission`` — if you use these 3 lines in ``/lib/systemd/system/transmission-daemon.service`` :
::
RuntimeDirectory=transmission-daemon
LogsDirectory=transmission-daemon
ExecStart=/usr/bin/transmission-daemon -f --log-error --log-debug --logfile /var/log/transmission-daemon/transmission.log --pid-file /run/transmission-daemon/transmission.pid
Noting that one should not normally edit files in ``/lib`` or ``/usr/lib`` — systemd has a command for customizing unit files: ``systemctl edit --full transmission-daemon.service``

View file

@ -7,11 +7,13 @@
# Transmission download directory & general owner/group
# transmission_download_dir: "{{ content_base }}/transmission/" # /library/transmission/
# transmission_user: debian-transmission
# transmission_group: root
# transmission_group: debian-transmission
# Monitor downloads at http://box:9091 or http://box:9091/transmission using Admin/changeme
# transmission_http_port: 9091
# transmission_url: /transmission/
# transmission_whitelist: 127.0.0.1,::1,192.168.*.*,172.18.96.*,10.8.0.*
# transmission_whitelist_enabled: "false" # LOWERCASE STRING for settings.json
# transmission_peer_port: 51413
# Provision Transmission with torrent(s) from http://pantry.learningequality.org/downloads/ka-lite/0.17/content/

View file

@ -6,6 +6,9 @@
state: restarted
when: transmission_enabled
- debug:
var: transmission_kalite_languages
- name: Add PAUSED KA Lite torrent(s) to transmission-daemon's queue
shell: >
/usr/bin/transmission-remote
@ -13,7 +16,7 @@
-n {{ transmission_username }}:{{ transmission_password }}
-a http://pantry.learningequality.org/downloads/ka-lite/{{ transmission_kalite_version }}/content/ka-lite-0.17-resized-videos-{{ item }}.torrent
with_items: "{{ transmission_kalite_languages }}"
when: transmission_enabled and transmission_provision and transmission_kalite_languages is defined and transmission_kalite_languages is not none
when: transmission_enabled and transmission_provision and transmission_kalite_languages is defined and transmission_kalite_languages is not none # '!= None' also works (i.e. to avoid var value 'null', with type 'NoneType')
ignore_errors: yes
- name: Disable & Stop 'transmission-daemon' service, if not transmission_enabled

View file

@ -9,8 +9,8 @@
file:
state: directory
path: "{{ transmission_download_dir }}" # /library/transmission
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # root
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # debian-transmission
# mode: '0755'
- name: Stop 'transmission-daemon' systemd service, before modifying its settings
@ -19,13 +19,38 @@
state: stopped
ignore_errors: yes
- name: Install /etc/transmission-daemon/settings.json from template
- name: Back up prior /etc/transmission-daemon/settings.json (original file from apt, or new symlink contents) to /etc/transmission-daemon/settings.json.old*
copy:
src: /etc/transmission-daemon/settings.json
dest: /etc/transmission-daemon/settings.json.old
mode: preserve
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # debian-transmission
backup: yes
ignore_errors: yes
- name: "Back up IIAB's templated version to /etc/transmission-daemon/settings.json.iiab"
template:
src: settings.json.j2
dest: /etc/transmission-daemon/settings.json
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # root
# mode: '0644'
dest: /etc/transmission-daemon/settings.json.iiab
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # debian-transmission
mode: '0600'
- name: Install /var/lib/transmission-daemon/.config/transmission-daemon/settings.json from template
template:
src: settings.json.j2
dest: /var/lib/transmission-daemon/.config/transmission-daemon/settings.json
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # debian-transmission
mode: '0600'
- name: "Reverse Transmission's fragile OOTB symlink -- instead we establish /etc/transmission-daemon/settings.json -> /var/lib/transmission-daemon/.config/transmission-daemon/settings.json -- REASON: /etc/transmission-daemon/settings.json was intermittently being IGNORED, as Transmission sometimes breaks its own symlink from /var/lib/transmission-daemon/.config/transmission-daemon/settings.json (by turning it into a file instead)"
file:
path: /etc/transmission-daemon/settings.json
src: /var/lib/transmission-daemon/.config/transmission-daemon/settings.json
state: link
force: yes
# RECORD Transmission AS INSTALLED

View file

@ -13,18 +13,15 @@
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "{{ transmission_download_dir }}",
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/var/lib/transmission-daemon/Downloads",
"incomplete-dir": "/var/lib/transmission-daemon/downloads",
"incomplete-dir-enabled": false,
"lpd-enabled": false,
"max-peers-global": 200,
"message-level": 1,
"message-level": 2,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200,
@ -35,12 +32,12 @@
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"port-forwarding-enabled": true,
"preallocation": 1,
"prefetch-enabled": true,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit": 2.0,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
@ -52,8 +49,8 @@
"rpc-port": {{ transmission_http_port }},
"rpc-url": "{{ transmission_url }}",
"rpc-username": "{{ transmission_username }}",
"rpc-whitelist": "127.0.0.1,192.168.*.*,172.18.96.*,10.8.0.*",
"rpc-whitelist-enabled": false,
"rpc-whitelist": "{{ transmission_whitelist }}",
"rpc-whitelist-enabled": {{ transmission_whitelist_enabled }},
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
@ -66,8 +63,8 @@
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true
"utp-enabled": true,
"watch-dir": "",
"watch-dir-enabled": false
}

View file

@ -507,11 +507,13 @@ transmission_password: changeme
# Transmission download directory & general owner/group
transmission_download_dir: "{{ content_base }}/transmission/" # /library/transmission/
transmission_user: debian-transmission
transmission_group: root
transmission_group: debian-transmission
# Monitor downloads at http://box:9091 or http://box:9091/transmission using Admin/changeme
transmission_http_port: 9091
transmission_url : /transmission/
transmission_url: /transmission/
transmission_whitelist: 127.0.0.1,::1,192.168.*.*,172.18.96.*,10.8.0.*
transmission_whitelist_enabled: "false" # LOWERCASE STRING for settings.json
transmission_peer_port: 51413
# Provision Transmission with torrent(s) from http://pantry.learningequality.org/downloads/ka-lite/0.17/content/