Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
services:alist [2025/03/19 09:10] – willy | services:alist [2025/03/19 10:40] (current) – willy | ||
---|---|---|---|
Line 6: | Line 6: | ||
The funny thing is that this is a Chinese devleoped open source app. You can see it by the quality of the translations, | The funny thing is that this is a Chinese devleoped open source app. You can see it by the quality of the translations, | ||
+ | |||
+ | I admire how AList guys are trying hard to provide english documentation, | ||
+ | |||
===== Installation ===== | ===== Installation ===== | ||
- | Very simple to host without containers. | + | Very simple to host without containers, the porject releases binary packages on GitHub. Download your preferred release [[https:// |
- | Download release [[https://github.com/AlistGo/alist/releases|here]] | + | The AList will need to be installed as user //fileserver// and group //users//, see [[selfhost: |
- | as user // | + | The daemon itself will be stored under **/dada/ |
+ | * /data/shares/ | ||
+ | * /var/log/alist: logs (autorotated) | ||
+ | * / | ||
+ | So: | ||
<code bash> | <code bash> | ||
useradd -m -d / | useradd -m -d / | ||
Line 22: | Line 29: | ||
mkdir / | mkdir / | ||
chown fileserver / | chown fileserver / | ||
- | |||
su - fileserver | su - fileserver | ||
wget https:// | wget https:// | ||
Line 42: | Line 48: | ||
INFO[2025-03-19 09:34:53] init logrus... | INFO[2025-03-19 09:34:53] init logrus... | ||
INFO[2025-03-19 09:34:53] Successfully created the admin user and the initial password is: oierjfeD | INFO[2025-03-19 09:34:53] Successfully created the admin user and the initial password is: oierjfeD | ||
- | INFO[2025-03-19 09:34:53] Admin user's username: admin | + | INFO[2025-03-19 09:34:53] Admin user s username: admin |
INFO[2025-03-19 09:34:53] The password can only be output at the first startup, and then stored as a hash value, which cannot be reversed | INFO[2025-03-19 09:34:53] The password can only be output at the first startup, and then stored as a hash value, which cannot be reversed | ||
INFO[2025-03-19 09:34:53] You can reset the password with a random string by running [alist admin random] | INFO[2025-03-19 09:34:53] You can reset the password with a random string by running [alist admin random] | ||
Line 89: | Line 95: | ||
access_log / | access_log / | ||
error_log / | error_log / | ||
+ | |||
+ | proxy_cache off; | ||
+ | proxy_max_temp_file_size 0; | ||
| | ||
Line 115: | Line 124: | ||
/ | / | ||
</ | </ | ||
- | |||
Point your browser to **drive.mydomain.com** and login as **admin** with the password you changed above. | Point your browser to **drive.mydomain.com** and login as **admin** with the password you changed above. | ||
Line 130: | Line 138: | ||
* Announcement: | * Announcement: | ||
* Pagination type: i suggest you enable pagination and set it to a resonable value to avoid too long loading times for huge folders | * Pagination type: i suggest you enable pagination and set it to a resonable value to avoid too long loading times for huge folders | ||
- | * | + | * Allow indexed / Allow mounted: so far, it's unclear to me what they are for. |
+ | |||
+ | Under **style** settings: | ||
+ | * Replace Logo URL with a locally distributed file (recomended) | ||
+ | * Replace favicon URL with a locally distributed file (recomended) | ||
+ | * Adapt the other options to your liking | ||
+ | |||
+ | Under **preview** settings: | ||
+ | * Disable audio and video autoplay to prevent bandwidth usage | ||
+ | |||
+ | Under **global** settings: | ||
+ | * Add your own header and footer customization, | ||
+ | |||
+ | Under **other** settings: | ||
+ | * Aria2: empty URL to disable. Aria2 is a downloader that AList can use to download files | ||
+ | * qBitTorrent: | ||
+ | * Transmission: | ||
+ | These are all downloaders. If you don't use them, don't need them linked to AList, but enpty URLs. | ||
+ | |||
+ | The other settings (LDAP, SSO, S3..) are for various authentications approaches. Only SSO (with Authelia) will be discossed below. | ||
+ | |||
+ | === Locl users === | ||
+ | |||
+ | Local users can be added individually under the **users** tab in //manage//. | ||
+ | |||
+ | I recomend to link to the SSO, as described below instead. | ||
=== Storages === | === Storages === | ||
Line 138: | Line 172: | ||
* Root folder path is the shared path on local storage | * Root folder path is the shared path on local storage | ||
* Make sure to edit the mkdir folder permissions to something sane like 775 or 770 or even 750. | * Make sure to edit the mkdir folder permissions to something sane like 775 or 770 or even 750. | ||
- | |||
=== Sharing files === | === Sharing files === | ||
You can add a guest user, one is available but disabled by default, or you can create **meta** links with specific sharing password. See [[https:// | You can add a guest user, one is available but disabled by default, or you can create **meta** links with specific sharing password. See [[https:// | ||
+ | |||
+ | === Indexing === | ||
+ | |||
+ | AList support indexing with many different backends. The easiest one is to enable indexing inside the SQLite database. | ||
+ | |||
+ | According to [[https:// | ||
+ | |||
+ | In other words, i leave indexing to **none**. YMMV. | ||
=== WebDAV === | === WebDAV === | ||
Line 151: | Line 192: | ||
https:// | https:// | ||
</ | </ | ||
+ | |||
+ | === Plugins === | ||
+ | |||
+ | AList support plugins, a list can be found [[https:// | ||
+ | |||
=== SSO === | === SSO === | ||
- | Authelia link... | + | **Note:** so far i failed at setting up Authelia |
+ | |||
+ | If you have setup your SSO backend, like i describe in [[selfhost: | ||
+ | |||
+ | The official documentation [[https:// | ||
+ | |||
+ | Authelia configuration section, to be added to / | ||
+ | < | ||
+ | clients: | ||
+ | - client_id: '<< | ||
+ | client_secret: | ||
+ | client_name: | ||
+ | public: false | ||
+ | authorization_policy: | ||
+ | redirect_uris: | ||
+ | - https:// | ||
+ | - https:// | ||
+ | scopes: | ||
+ | - ' | ||
+ | - ' | ||
+ | - ' | ||
+ | userinfo_signed_response_alg: | ||
+ | </ | ||
+ | |||
+ | To generate a ClientID: | ||
+ | <code bash> | ||
+ | authelia crypto rand --length 72 --charset rfc3986 | ||
+ | </ | ||
+ | |||
+ | To generate a Client Secret: | ||
+ | <code bash> | ||
+ | authelia crypto hash generate pbkdf2 --variant sha512 --random --random.length 72 --random.charset rfc3986 | ||
+ | </ | ||
+ | Please note **both** the digest and the password itself! | ||
+ | |||
+ | In AList use the following information: | ||
+ | * Platform: OIDC | ||
+ | * Client ID: use the one generated above | ||
+ | * Client secret: use the one generated above, the password, not the digest | ||
+ | * Sso oidc username key: preferred_username | ||
+ | * Sso organization name: user | ||
+ | * Sso application name: user | ||
+ | * Sso extra scopes: openid email profile | ||
+ | * SSO endpoint name: https:// | ||
+ | * SSO auto register: create AList users from SSO users | ||
+ | * SSO default permission: a sum of all the extra permissions. Use 768 for WebDAV access and editing. | ||
+ | |||
+ | |||
+ | |||
+ | === Backups === | ||
+ | |||
+ | While AList has a backup function included, i strongly suggest to ignore it and follow my [[selfhost: | ||
+ | |||
+ | You will need to backup the **/ | ||