adding filebrowser role

This commit is contained in:
kirby 2025-05-22 15:39:00 +02:00
parent 69ae923d1b
commit b6c92a7a8d
7 changed files with 146 additions and 0 deletions

View File

@ -0,0 +1,10 @@
---
fb_version: "2.32.0"
fb_user: "admin"
fb_group: "admin"
fb_port: "8080"
fb_address: "0.0.0.0"
fb_log_dir: "/var/log/filebrowser"
fb_config_dir: "/etc/filebrowser"
fb_root: "/nas/{{ env_long }}"

View File

@ -0,0 +1,10 @@
/var/log/filebrowser/filebrowser.log
{
rotate 7
daily
missingok
dateext
copytruncate
notifempty
compress
}

View File

@ -0,0 +1,2 @@
if $programname == 'filebrowser' then /var/log/filebrowser/filebrowser.log
&stop

View File

@ -0,0 +1,10 @@
---
- name: Daemon reload
ansible.builtin.systemd_service:
daemon_reload: true
- name: Restart
ansible.builtin.systemd_service:
name: filebrowser.service
state: restarted

View File

@ -0,0 +1,89 @@
---
- name: Create download folder
ansible.builtin.file:
path: "/tmp/filebrowser"
state: directory
- name: Download Filebrowser binary from github
ansible.builtin.unarchive:
src: "https://github.com/filebrowser/filebrowser/releases/download/v{{ fb_version }}/linux-amd64-filebrowser.tar.gz"
dest: "/tmp/filebrowser"
remote_src: true
- name: Moving filebrowser binary to /usr/local/bin
ansible.builtin.copy:
src: /tmp/filebrowser/filebrowser
dest: /usr/local/bin/filebrowser
owner: root
group: root
mode: 0755
remote_src: true
- name: Create configuration folder
ansible.builtin.file:
path: "{{ fb_config_dir }}"
owner: "{{ fb_user }}"
group: "{{ fb_group }}"
mode: 0755
state: directory
- name: Deploying configuration file
ansible.builtin.template:
src: "settings.json.j2"
dest: "{{ fb_config_dir }}/settings.json"
owner: "{{ fb_user }}"
group: "{{ fb_group }}"
mode: 0644
notify: Restart
- name: Deploying service file
ansible.builtin.template:
src: "filebrowser.service.j2"
dest: "/lib/systemd/system/filebrowser.service"
owner: "root"
group: "root"
mode: 0644
notify:
- Daemon reload
- name: Running handlers for daemon reload
meta: flush_handlers
- name: Enabling filebrowser service
ansible.builtin.systemd:
name: filebrowser.service
state: started
enabled: true
- name: Create log folder
ansible.builtin.file:
path: "{{ fb_log_dir }}"
owner: root
group: adm
mode: 0755
state: directory
- name: Deploy rsyslog config
ansible.builtin.copy:
src: rsyslog.conf
dest: /etc/rsyslog.d/filebrowser.conf
owner: root
group: root
mode: 0644
- name: Deploy logrotate config
ansible.builtin.copy:
src: logrotate.conf
dest: /etc/logrotate.d/filebrowser
owner: root
group: root
mode: 0644
- name: Create custom branding folder
ansible.builtin.file:
path: "/etc/filebrowser/branding/img/icons"
owner: "{{ fb_user }}"
group: "{{ fb_group }}"
mode: 0755
state: directory

View File

@ -0,0 +1,17 @@
[Unit]
Description=Filebrowser
Documentation=https://filebrowser.org
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User={{ fb_user }}
Group={{ fb_group }}
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/filebrowser --config {{ fb_config_dir }}/settings.json
SyslogIdentifier=filebrowser
Restart=always
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,8 @@
{
"port": {{ fb_port }},
"baseURL": "",
"address": "{{ fb_address }}",
"log": "{{ fb_log_dir }}/filebrowser.log",
"database": "{{ fb_config_dir }}/filebrowser.db",
"root": "{{ fb_root }}"
}