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/07/25 07:34] (current) – willy | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | [[https://alist.nn.ci/|AList]] is a nice tool to make your shares accessible online. | + | [[https://doc.oplist.org/|OpenList]] is a nice tool to make your shares accessible online. |
| - | + | ||
| - | Overall documentation can be reached [[https://alist.nn.ci/guide/|here]], somehow | + | |
| 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 OpenList guys are trying hard to provide english documentation, | ||
| + | |||
| + | The fuss around the AList/ | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | Very simple | + | Since i installed AList then migrated |
| - | Download release [[https:// | + | Very simple to host without containers, the porject releases binary packages on GitHub. |
| - | as user // | + | The OpenList will need to be installed |
| + | The daemon itself will be stored under **/ | ||
| + | * / | ||
| + | * / | ||
| + | * / | ||
| + | |||
| + | So: | ||
| <code bash> | <code bash> | ||
| useradd -m -d / | useradd -m -d / | ||
| Line 22: | Line 30: | ||
| mkdir / | mkdir / | ||
| chown fileserver / | chown fileserver / | ||
| - | |||
| su - fileserver | su - fileserver | ||
| - | wget https:// | + | wgethttps:// |
| mkdir bin | mkdir bin | ||
| cd bin | cd bin | ||
| - | tar xvf ../alist-linux-amd64.tar.gz | + | tar xvf ../openlist-linux-amd64.tar.gz |
| </ | </ | ||
| Line 42: | Line 49: | ||
| 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 96: | ||
| access_log / | access_log / | ||
| error_log / | error_log / | ||
| + | |||
| + | proxy_cache off; | ||
| + | proxy_max_temp_file_size 0; | ||
| | | ||
| Line 115: | Line 125: | ||
| / | / | ||
| </ | </ | ||
| - | |||
| 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 139: | ||
| * 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 173: | ||
| * 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 193: | ||
| 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 **/ | ||
| Line 184: | Line 284: | ||
| </ | </ | ||
| + | |||
| + | ===== Update ===== | ||
| + | |||
| + | Just replace the binary with a new one and restart the service. | ||