mirror of
https://github.com/haiwen/seafile-admin-docs.git
synced 2025-12-25 18:22:48 +00:00
feat: seafile helm chart deploy seafile
This commit is contained in:
parent
e13b466fdf
commit
c1f7caa967
|
|
@ -32,28 +32,9 @@ Let's assume you have three nodes in your cluster: A, B, and C.
|
|||
|
||||

|
||||
|
||||
## Environment
|
||||
## Cluster requirements
|
||||
|
||||
!!! success
|
||||
Since version 11.0, Redis can also be used as memory cache server. But currently only single-node Redis is supported.
|
||||
|
||||
!!! note "Prerequisites"
|
||||
|
||||
- We assume you have already deployed memory cache server (e.g., ***Memcached***), ***MariaDB***, file indexer (e.g., ***ElasticSearch***) in separate machines and use ***S3*** like object storage.
|
||||
|
||||
- Usually, each node of Seafile Cluster should have at least **2 cores** and **2G memory**. If the above services are deployed together with a node in the Seafile cluster especially ***ElasticSearch***, we recommend that you prepare **4 cores** and **4G memory** for that node. If you donnot have enough hardware requirements for *ElasticSearch*, you can use [*SeaSearch*](./use_seasearch.md) as search engine, which is more lightweight.
|
||||
|
||||
Seafile Server: 2 frontend nodes, 1 backend node
|
||||
|
||||
!!! tip "More details about the number of nodes"
|
||||
1. If your number of nodes does not meet our recommended number (i.e. 3 nodes), please adjust according to the following strategies:
|
||||
- **2 nodes**: A frontend service and a backend service on the same node
|
||||
- **1 node**: Please refer [here](./setup_pro_by_docker.md) to deploy Seafile in a single node instead a cluster.
|
||||
2. If you have more available nodes for Seafile server, please provide them to the Seafile frontend service and **make sure there is only one backend service running**. Here is a simple relationship between the number of Seafile frontent services ($N_f$) and total nodes ($N_t$):
|
||||
$$
|
||||
N_f = N_t - 1,
|
||||
$$
|
||||
where the number **1** means one node for Seafile backend service.
|
||||
Please refer [here](./system_requirements.md#seafile-cluster) for the details about the cluster requirements for **all nodes** in Seafile cluster.
|
||||
|
||||
## Deploy Seafile service
|
||||
|
||||
|
|
|
|||
|
|
@ -1,40 +1,12 @@
|
|||
# Deploy Seafile cluster with Kubernetes (K8S)
|
||||
# Deploy Seafile cluster with Kubernetes (K8S) by K8S resources files
|
||||
|
||||
This manual explains how to deploy and run Seafile cluster on a Linux server using *Kubernetes* (***k8s*** thereafter).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### System requirements
|
||||
## Cluster requirements
|
||||
|
||||
In theory, you only need to prepare one node to deploy a cluster, but this does not conform to the K8S design concept, so we recommend that you prepare at least 3 nodes:
|
||||
|
||||
- **Two** nodes for starting the Seafile frontend service
|
||||
- **One** node for starting the Seafile backend service
|
||||
|
||||
For each node, you have to prepare at least **2 cores** cpu, **2G RAM** and 10G disk space.
|
||||
|
||||
!!! note "More details about System requirements"
|
||||
We assume you have already deployed memory cache server (e.g., ***Memcached***), ***MariaDB***, file indexer (e.g., ***ElasticSearch***) in separate machines and use ***S3*** like object storage.
|
||||
|
||||
- If some of the above services are deployed on one of the nodes, you may need to prepare more space for the node. Especially for ***ElasticSearch***, you need to prepare at least **4 cores** cpu, **4GB** memory and more disk space on the node. If you donnot have enough hardware requirements for *ElasticSearch*, you can use [*SeaSearch*](./use_seasearch.md) as search engine, which is more lightweight.
|
||||
|
||||
- Generally, when deploying Seafile in a cluster, we recommend that you use a storage backend (such as AWS S3) to store Seafile data. However, according to the Seafile image startup rules and K8S persistent storage strategy, you still need to prepare a persistent directory for configuring the startup of the Seafile container. In this document, we use the following path for the persistent directory with maximum 10GB space:
|
||||
|
||||
```
|
||||
/opt/seafile/shared
|
||||
```
|
||||
|
||||
If you would like to change it or increase the space, you should modify the `seafile-persistentvolume.yaml` and `seafile-persistentvolumeclaim.yaml` in this document.
|
||||
|
||||
!!! tip "More details about the number of nodes"
|
||||
1. If your number of nodes does not meet our recommended number (i.e. 3 nodes), please adjust according to the following strategies:
|
||||
- **2 nodes**: A frontend service and a backend service on the same node
|
||||
- **1 node**: Please refer [here](./k8s_single_node.md) to deploy Seafile in a K8S single node instead a cluster.
|
||||
2. If you have more available nodes for Seafile server, please provide them to the Seafile frontend service and **make sure there is only one backend service running**. Here is a simple relationship between the number of Seafile frontent services ($N_f$) and total nodes ($N_t$):
|
||||
$$
|
||||
N_f = N_t - 1,
|
||||
$$
|
||||
where the number **1** means one node for Seafile backend service.
|
||||
Please refer [here](./system_requirements.md#seafile-cluster) for the details about the cluster requirements for **all nodes** in Seafile cluster.
|
||||
|
||||
### K8S tools
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,294 @@
|
|||
# Deploy Seafile cluster with Kubernetes (K8S) by Seafile Helm Chart
|
||||
|
||||
This manual explains how to deploy and run Seafile cluster on a Linux server using [*Seafile Helm Chart*](https://github.com/seafileltd/seafile-helm-chart) (***chart*** thereafter). You can also refer to here to use K8S resource files to deploy Seafile cluster in your K8S cluster.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
## Cluster requirements
|
||||
|
||||
Please refer [here](./system_requirements.md#seafile-cluster) for the details about the cluster requirements for **all nodes** in Seafile cluster.
|
||||
|
||||
### K8S tools
|
||||
|
||||
Two tools are suggested and can be installed with [official installation guide](https://kubernetes.io/docs/tasks/tools/) **on all nodes**:
|
||||
|
||||
- ***kubectl***
|
||||
- ***k8s control plane tool*** (e.g., ***kubeadm***)
|
||||
|
||||
After installation, you need to start the k8s control plane service on each node and refer to the k8s official manual for [creating a cluster](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/).
|
||||
|
||||
!!! tip
|
||||
Although we recommend installing the *k8s control plane tool* on each node, it does not mean that we will use each node as a control plane node, but it is a necessary tool to create or join a K8S cluster. For details, please refer to the above [link](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) about **creating or joining into a cluster**.
|
||||
|
||||
### Install Seafile helm chart
|
||||
|
||||
1. Create namespace
|
||||
|
||||
```
|
||||
kubectl create namespace seafile
|
||||
```
|
||||
|
||||
2. Create a secret for sensitive data
|
||||
|
||||
```sh
|
||||
kubectl create secret generic seafile-secret --namespace seafile \
|
||||
--from-literal=JWT_PRIVATE_KEY='<required>' \
|
||||
--from-literal=SEAFILE_MYSQL_DB_PASSWORD='<required>' \
|
||||
--from-literal=INIT_SEAFILE_ADMIN_PASSWORD='<required>' \
|
||||
--from-literal=INIT_SEAFILE_MYSQL_ROOT_PASSWORD='<required>' \
|
||||
--from-literal=INIT_S3_SECRET_KEY=''
|
||||
```
|
||||
|
||||
3. Download and modify the `my-values.yaml` according to your configurations. By the way, you can follow [here](./setup_pro_by_docker.md#downloading-and-modifying-env) for the details:
|
||||
|
||||
```sh
|
||||
wget -O my-values.yaml https://seafileltd.github.io/seafile-helm-chart/values/cluster.yaml
|
||||
|
||||
nano my-values.yaml
|
||||
```
|
||||
|
||||
4. Then install the chart use the following command:
|
||||
|
||||
```sh
|
||||
helm repo add seafile https://github.com/seafileltd/seafile-helm-chart
|
||||
helm upgrade --install seafile seafile/cluster --namespace seafile --create-namespace --values my-values.yaml
|
||||
```
|
||||
!!! success
|
||||
After installing the chart, the cluster is going to initial progress, you can see the following message by `kubectl logs seafile-<string> -n seafile`:
|
||||
|
||||
```log
|
||||
Defaulted container "seafile-backend" out of: seafile-backend, set-ownership (init)
|
||||
*** Running /etc/my_init.d/01_create_data_links.sh...
|
||||
*** Booting runit daemon...
|
||||
*** Runit started as PID 15
|
||||
*** Running /scripts/enterpoint.sh...
|
||||
2025-02-13 08:58:35 Nginx ready
|
||||
2025-02-13 08:58:35 This is an idle script (infinite loop) to keep container running.
|
||||
|
||||
---------------------------------
|
||||
|
||||
Seafile cluster backend mode
|
||||
|
||||
---------------------------------
|
||||
|
||||
[2025-02-13 08:58:35] Now running setup-seafile-mysql.py in auto mode.
|
||||
Checking python on this machine ...
|
||||
|
||||
|
||||
verifying password of user root ... done
|
||||
|
||||
---------------------------------
|
||||
This is your configuration
|
||||
---------------------------------
|
||||
|
||||
server name: seafile
|
||||
server ip/domain: 10.0.0.138
|
||||
|
||||
seafile data dir: /opt/seafile/seafile-data
|
||||
fileserver port: 8082
|
||||
|
||||
database: create new
|
||||
ccnet database: ccnet_db
|
||||
seafile database: seafile_db
|
||||
seahub database: seahub_db
|
||||
database user: seafile
|
||||
|
||||
|
||||
Generating seafile configuration ...
|
||||
|
||||
done
|
||||
Generating seahub configuration ...
|
||||
|
||||
----------------------------------------
|
||||
Now creating seafevents database tables ...
|
||||
|
||||
----------------------------------------
|
||||
----------------------------------------
|
||||
Now creating ccnet database tables ...
|
||||
|
||||
----------------------------------------
|
||||
----------------------------------------
|
||||
Now creating seafile database tables ...
|
||||
|
||||
----------------------------------------
|
||||
----------------------------------------
|
||||
Now creating seahub database tables ...
|
||||
|
||||
----------------------------------------
|
||||
|
||||
|
||||
-----------------------------------------------------------------
|
||||
Your seafile server configuration has been finished successfully.
|
||||
-----------------------------------------------------------------
|
||||
|
||||
|
||||
[2025-02-13 08:58:36] Updating version stamp
|
||||
Start init
|
||||
|
||||
Init success
|
||||
|
||||
```
|
||||
|
||||
5. After the first-time startup, you have to turn off (i.e., set `CLUSTER_INIT_MODE` to `false`) in your `my-values.yaml`, then upgrade the chart:
|
||||
|
||||
```sh
|
||||
helm upgrade --install seafile seafile/cluster --namespace seafile --create-namespace --values my-values.yaml
|
||||
```
|
||||
|
||||
!!! success
|
||||
You can check any front-end node in Seafile cluster. If the following information is output, Seafile cluster will run normally in your cluster:
|
||||
|
||||
```log
|
||||
Defaulted container "seafile-frontend" out of: seafile-frontend, set-ownership (init)
|
||||
*** Running /etc/my_init.d/01_create_data_links.sh...
|
||||
*** Booting runit daemon...
|
||||
*** Runit started as PID 21
|
||||
*** Running /scripts/enterpoint.sh...
|
||||
2025-02-13 09:23:49 Nginx ready
|
||||
2025-02-13 09:23:49 This is an idle script (infinite loop) to keep container running.
|
||||
|
||||
---------------------------------
|
||||
|
||||
Seafile cluster frontend mode
|
||||
|
||||
---------------------------------
|
||||
|
||||
|
||||
Starting seafile server, please wait ...
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] seafile-session.c(86): fileserver: web_token_expire_time = 3600
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] seafile-session.c(98): fileserver: max_index_processing_threads= 3
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] seafile-session.c(111): fileserver: fixed_block_size = 8388608
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] seafile-session.c(123): fileserver: max_indexing_threads = 1
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] seafile-session.c(138): fileserver: put_head_commit_request_timeout = 10
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] seafile-session.c(150): fileserver: skip_block_hash = 0
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] ../common/seaf-utils.c(581): Use database Mysql
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(243): fileserver: worker_threads = 10
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(256): fileserver: backlog = 32
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(267): fileserver: verify_client_blocks = 1
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(289): fileserver: cluster_shared_temp_file_mode = 600
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(336): fileserver: check_virus_on_web_upload = 0
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(362): fileserver: enable_async_indexing = 0
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(374): fileserver: async_indexing_threshold = 700
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(386): fileserver: fs_id_list_request_timeout = 300
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] http-server.c(399): fileserver: max_sync_file_count = 100000
|
||||
[seaf-server] [2025-02-13 09:23:50] [WARNING] ../common/license.c(716): License file /opt/seafile/seafile-license.txt does not exist, allow at most 3 trial users
|
||||
License file /opt/seafile/seafile-license.txt does not exist, allow at most 3 trial users
|
||||
[seaf-server] [2025-02-13 09:23:50] [INFO] filelock-mgr.c(1397): Cleaning expired file locks.
|
||||
[2025-02-13 09:23:52] Start Monitor
|
||||
[2025-02-13 09:23:52] Start seafevents.main
|
||||
/opt/seafile/seafile-pro-server-12.0.9/seahub/seahub/settings.py:1101: SyntaxWarning: invalid escape sequence '\w'
|
||||
match = re.search('^EXTRA_(\w+)', attr)
|
||||
/opt/seafile/seafile-pro-server-12.0.9/seahub/thirdpart/seafobj/mc.py:13: SyntaxWarning: invalid escape sequence '\S'
|
||||
match = re.match('--SERVER\\s*=\\s*(\S+)', mc_options)
|
||||
Seafile server started
|
||||
|
||||
Done.
|
||||
|
||||
Starting seahub at port 8000 ...
|
||||
|
||||
|
||||
|
||||
----------------------------------------
|
||||
Successfully created seafile admin
|
||||
----------------------------------------
|
||||
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:82 LDAP is not set, disable ldap sync.
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] virus_scan:51 [virus_scan] scan_command option is not found in seafile.conf, disable virus scan.
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] seafevents.app.mq_handler:127 Subscribe to channels: {'seaf_server.stats', 'seahub.stats', 'seaf_server.event', 'seahub.audit'}
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:534 Start counting user activity info..
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:547 [UserActivityCounter] update 0 items.
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:240 Start counting traffic info..
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:268 Traffic counter finished, total time: 0.0003578662872314453 seconds.
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:23 Start file updates sender, interval = 300 sec
|
||||
[seafevents] [2025-02-13 09:23:55] [WARNING] root:57 Can not start work weixin notice sender: it is not enabled!
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:131 search indexer is started, interval = 600 sec
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:56 seahub email sender is started, interval = 1800 sec
|
||||
[seafevents] [2025-02-13 09:23:55] [WARNING] root:17 Can not start ldap syncer: it is not enabled!
|
||||
[seafevents] [2025-02-13 09:23:55] [WARNING] root:18 Can not start virus scanner: it is not enabled!
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:35 Start data statistics..
|
||||
[seafevents] [2025-02-13 09:23:55] [WARNING] root:40 Can not start content scanner: it is not enabled!
|
||||
[seafevents] [2025-02-13 09:23:55] [WARNING] root:46 Can not scan repo old files auto del days: it is not enabled!
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:182 Start counting total storage..
|
||||
[seafevents] [2025-02-13 09:23:55] [WARNING] root:78 Can not start filename index updater: it is not enabled!
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:113 search wiki indexer is started, interval = 600 sec
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:87 Start counting file operations..
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:403 Start counting monthly traffic info..
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:491 Monthly traffic counter finished, update 0 user items, 0 org items, total time: 0.0905158519744873 seconds.
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:203 [TotalStorageCounter] No results from seafile-db.
|
||||
[seafevents] [2025-02-13 09:23:55] [INFO] root:169 [FileOpsCounter] Finish counting file operations in 0.09510159492492676 seconds, 0 added, 0 deleted, 0 visited, 0 modified
|
||||
|
||||
Seahub is started
|
||||
|
||||
Done.
|
||||
```
|
||||
|
||||
6. If you have a `seafile-license.txt` license file, simply put it in the volume of the Seafile container. The volumne's default path in the Compose file is `/opt/seafile/shared`. If you have modified the path, save the license file under your custom path.
|
||||
|
||||
!!! danger "If the license file has a different name or cannot be read, Seafile server will start with in trailer mode with most THREE users"
|
||||
|
||||
Then restart Seafile:
|
||||
|
||||
```bash
|
||||
kubectl delete pods -n seafile $(kubectl get pods -n seafile -o jsonpath='{.items[*].metadata.name}' | grep seafile)
|
||||
```
|
||||
|
||||
## Uninstall chart
|
||||
|
||||
You can uninstall chart by the following command:
|
||||
|
||||
```sh
|
||||
helm delete seafile --namespace seafile
|
||||
```
|
||||
|
||||
## Advanced operations
|
||||
|
||||
### Extra volumes
|
||||
|
||||
In this part, we take encrypted seafile-license file for example. You can also create a *secret* resource to encrypt your license file in your K8S cluster:
|
||||
|
||||
```sh
|
||||
kubectl create secret generic seafile-license --from-file=seafile-license.txt=$PATH_TO_YOUR_LICENSE_FILE --namespace seafile
|
||||
```
|
||||
|
||||
Then modify `my-values.yaml` to add the information extra volumes:
|
||||
|
||||
```yaml
|
||||
seafile:
|
||||
...
|
||||
extraVolumes:
|
||||
backend:
|
||||
- name: seafileLicense
|
||||
volumeInfo:
|
||||
secret:
|
||||
secretName: seafile-license
|
||||
items:
|
||||
- key: seafile-license.txt
|
||||
path: seafile-license.txt
|
||||
subPath: seafile-license.txt
|
||||
mountPath: /shared/seafile/seafile-license.txt
|
||||
readOnly: true
|
||||
frontend:
|
||||
- name: seafileLicense
|
||||
volumeInfo:
|
||||
secret:
|
||||
secretName: seafile-license
|
||||
items:
|
||||
- key: seafile-license.txt
|
||||
path: seafile-license.txt
|
||||
subPath: seafile-license.txt
|
||||
mountPath: /shared/seafile/seafile-license.txt
|
||||
readOnly: true
|
||||
```
|
||||
|
||||
Finally you can upgrade your chart by:
|
||||
|
||||
```sh
|
||||
helm upgrade --install seafile seafile/cluster --namespace seafile --create-namespace --values my-values.yaml
|
||||
```
|
||||
|
||||
!!! success "Flexible in Seafile Helm Chart"
|
||||
No only the extra volumes, you can also define the other environment variables objects (i.e., `extraEnv`) and resources objects (i.e., `extraResources`) in `my-values.yaml`
|
||||
|
||||
### Other advanced operations
|
||||
|
||||
Please refer from [here](./cluster_deploy_with_k8s.md#load-balance-and-https) for futher advanced operations.
|
||||
|
|
@ -0,0 +1,191 @@
|
|||
# Setup Seafile with a single K8S pod with Seafile Helm Chart
|
||||
|
||||
This manual explains how to deploy and run Seafile server on a Linux server using [*Seafile Helm Chart*](https://github.com/seafileltd/seafile-helm-chart) (***chart*** thereafter) in a single pod (i.e., single node mode). Comparing to [Setup by K8S resource files](./k8s_single_node.md), deployment with helm chart can simplify the deployment process and provide more flexible deployment control, which the way we recommend in deployment with K8S.
|
||||
|
||||
For specific environment and configuration requirements, please refer to the description of the [Docker-based Seafile single-node deployment](./setup_pro_by_docker.md#requirements). Please also refer to the description of the ***K8S tool*** section in [here](./cluster_deploy_with_k8s.md#k8s-tools).
|
||||
|
||||
## Preparation
|
||||
|
||||
For persisting data using in the docker-base deployment, `/opt/seafile-data`, is still adopted in this manual. What's more, all K8S YAML files will be placed in `/opt/seafile-k8s-yaml` (replace it when following these instructions if you would like to use another path).
|
||||
|
||||
By the way, we don't provide the deployment methods of basic services (e.g., **Memcached**, **MySQL** and **Elasticsearch**) and seafile-compatibility components (e.g., **SeaDoc**) for K8S in our document. If you need to install these services in K8S format, ***you can refer to the rewrite method in [this document](./k8s_single_node.md).***
|
||||
|
||||
### System requirements
|
||||
|
||||
Please refer [here](./system_requirements.md) for system requirements about Seafile service. By the way, this will apply to all nodes where Seafile pods may appear in your K8S cluster.
|
||||
|
||||
## Install Seafile helm chart
|
||||
|
||||
1. Create namespace
|
||||
|
||||
```
|
||||
kubectl create namespace seafile
|
||||
```
|
||||
|
||||
2. Create a secret for sensitive data
|
||||
|
||||
=== "Seafile Pro"
|
||||
|
||||
```sh
|
||||
kubectl create secret generic seafile-secret --namespace seafile \
|
||||
--from-literal=JWT_PRIVATE_KEY='<required>' \
|
||||
--from-literal=SEAFILE_MYSQL_DB_PASSWORD='<required>' \
|
||||
--from-literal=INIT_SEAFILE_ADMIN_PASSWORD='<required>' \
|
||||
--from-literal=INIT_SEAFILE_MYSQL_ROOT_PASSWORD='<required>' \
|
||||
--from-literal=INIT_S3_SECRET_KEY=''
|
||||
```
|
||||
=== "Seafile CE"
|
||||
|
||||
```sh
|
||||
kubectl create secret generic seafile-secret --namespace seafile \
|
||||
--from-literal=JWT_PRIVATE_KEY='<required>' \
|
||||
--from-literal=SEAFILE_MYSQL_DB_PASSWORD='<required>' \
|
||||
--from-literal=INIT_SEAFILE_ADMIN_PASSWORD='<required>' \
|
||||
--from-literal=INIT_SEAFILE_MYSQL_ROOT_PASSWORD='<required>'
|
||||
```
|
||||
|
||||
3. Download and modify the `my-values.yaml` according to your configurations. By the way, you can follow [here](../config/env.md) for the details:
|
||||
|
||||
=== "Seafile Pro"
|
||||
|
||||
```sh
|
||||
wget -O my-values.yaml https://seafileltd.github.io/seafile-helm-chart/values/pro.yaml
|
||||
|
||||
nano my-values.yaml
|
||||
```
|
||||
|
||||
=== "Seafile CE"
|
||||
|
||||
```sh
|
||||
wget -O my-values.yaml https://seafileltd.github.io/seafile-helm-chart/values/ce.yaml
|
||||
|
||||
nano my-values.yaml
|
||||
```
|
||||
|
||||
4. Then install the chart use the following command:
|
||||
|
||||
=== "Seafile Pro"
|
||||
|
||||
```sh
|
||||
helm repo add seafile https://github.com/seafileltd/seafile-helm-chart
|
||||
helm upgrade --install seafile seafile/pro --namespace seafile --create-namespace --values my-values.yaml
|
||||
```
|
||||
|
||||
=== "Seafile CE"
|
||||
|
||||
```sh
|
||||
helm repo add seafile https://github.com/seafileltd/seafile-helm-chart
|
||||
helm upgrade --install seafile seafile/ce --namespace seafile --create-namespace --values my-values.yaml
|
||||
```
|
||||
|
||||
After installing the chart, the Seafile pod should startup automaticlly.
|
||||
|
||||
!!! note "About Seafile service"
|
||||
The default service type of Seafile is ***LoadBalancer***. You should specify K8S load balancer for Seafile or specify at least one external ip, that can be accessed from external networks.
|
||||
|
||||
!!! warning "Important for Pro edition"
|
||||
By default, Seafile (***Pro***) will access the ***Memcached*** and ***Elasticsearch*** with the specific service name:
|
||||
|
||||
- ***Memcached***: `memcached` with port 11211
|
||||
- ***Elasticsearch***: `elasticsearch` with port 9200
|
||||
|
||||
If the above services are:
|
||||
|
||||
- Not in your K8S pods (including using an external service)
|
||||
- With different service name
|
||||
- With different server port
|
||||
|
||||
Please modfiy the files in `/opt/seafile-data/seafile/conf` (especially the `seafevents.conf`, `seafile.conf` and `seahub_settings.py`) to make correct the configurations for above services, otherwise the Seafile server cannot start normally. Then restart Seafile server:
|
||||
|
||||
```sh
|
||||
kubectl delete pods -n seafile $(kubectl get pods -n seafile -o jsonpath='{.items[*].metadata.name}' | grep seafile)
|
||||
```
|
||||
|
||||
## Activating the Seafile License (Pro)
|
||||
|
||||
If you have a `seafile-license.txt` license file, simply put it in the volume of the Seafile container. The volumne's default path in the Compose file is `/opt/seafile-data`. If you have modified the path, save the license file under your custom path.
|
||||
|
||||
!!! danger "If the license file has a different name or cannot be read, Seafile server will start with in trailer mode with most THREE users"
|
||||
|
||||
Then restart Seafile:
|
||||
|
||||
```bash
|
||||
kubectl delete pods -n seafile $(kubectl get pods -n seafile -o jsonpath='{.items[*].metadata.name}' | grep seafile)
|
||||
```
|
||||
|
||||
## Container management
|
||||
|
||||
Similar to docker installation, you can also manage containers through [some kubectl commands](https://kubernetes.io/docs/reference/kubectl/#operations). For example, you can use the following command to check whether the relevant resources are started successfully and whether the relevant services can be accessed normally. First, execute the following command and remember the pod name with `seafile-` as the prefix (such as `seafile-748b695648-d6l4g`)
|
||||
|
||||
```shell
|
||||
kubectl get pods -n seafile
|
||||
```
|
||||
|
||||
You can check a status of a pod by
|
||||
|
||||
```shell
|
||||
kubectl logs seafile-748b695648-d6l4g -n seafile
|
||||
```
|
||||
|
||||
and enter a container by
|
||||
|
||||
```shell
|
||||
kubectl exec -it seafile-748b695648-d6l4g -n seafile -- bash
|
||||
```
|
||||
|
||||
## Uninstall chart
|
||||
|
||||
You can uninstall chart by the following command:
|
||||
|
||||
```sh
|
||||
helm delete seafile --namespace seafile
|
||||
```
|
||||
|
||||
## Advanced operations
|
||||
|
||||
### Extra volumes
|
||||
|
||||
In this part, we take encrypted seafile-license file for example. You can also create a *secret* resource to encrypt your license file in your K8S cluster:
|
||||
|
||||
```sh
|
||||
kubectl create secret generic seafile-license --from-file=seafile-license.txt=$PATH_TO_YOUR_LICENSE_FILE --namespace seafile
|
||||
```
|
||||
|
||||
Then modify `my-values.yaml` to add the information extra volumes:
|
||||
|
||||
```yaml
|
||||
seafile:
|
||||
...
|
||||
extraVolumes:
|
||||
- name: seafileLicense
|
||||
volumeInfo:
|
||||
secret:
|
||||
secretName: seafile-license
|
||||
items:
|
||||
- key: seafile-license.txt
|
||||
path: seafile-license.txt
|
||||
subPath: seafile-license.txt
|
||||
mountPath: /shared/seafile/seafile-license.txt
|
||||
readOnly: true
|
||||
```
|
||||
|
||||
Finally you can upgrade your chart by:
|
||||
|
||||
=== "Seafile Pro"
|
||||
|
||||
```sh
|
||||
helm upgrade --install seafile seafile/pro --namespace seafile --create-namespace --values my-values.yaml
|
||||
```
|
||||
|
||||
=== "Seafile CE"
|
||||
|
||||
```sh
|
||||
helm upgrade --install seafile seafile/ce --namespace seafile --create-namespace --values my-values.yaml
|
||||
```
|
||||
|
||||
!!! success "Flexible in Seafile Helm Chart"
|
||||
No only the extra volumes, you can also define the other environment variables objects (i.e., `extraEnv`) and resources objects (i.e., `extraResources`) in `my-values.yaml`
|
||||
|
||||
### Other advanced operations
|
||||
|
||||
Please refer from [here](./k8s_single_node.md#https) for futher advanced operations.
|
||||
|
|
@ -1,9 +1,13 @@
|
|||
# Setup Seafile with a single K8S pod
|
||||
# Setup Seafile with a single K8S pod with K8S resources files
|
||||
|
||||
This manual explains how to deploy and run Seafile server on a Linux server using *Kubernetes* (***k8s*** thereafter) in a single pod (i.e., single node mode). So this document is essentially an extended description of the [Docker-based Seafile single-node deployment](./overview.md) (support both CE and Pro).
|
||||
|
||||
For specific environment and configuration requirements, please refer to the description of the [Docker-based Seafile single-node deployment](./setup_pro_by_docker.md#requirements). Please also refer to the description of the ***K8S tool*** section in [here](./cluster_deploy_with_k8s.md#k8s-tools).
|
||||
|
||||
## System requirements
|
||||
|
||||
Please refer [here](./system_requirements.md) for system requirements about Seafile service. By the way, this will apply to all nodes where Seafile pods may appear in your K8S cluster.
|
||||
|
||||
## Gettings started
|
||||
|
||||
For persisting data using in the docker-base deployment, `/opt/seafile-data`, is still adopted in this manual. What's more, all K8S YAML files will be placed in `/opt/seafile-k8s-yaml` (replace it when following these instructions if you would like to use another path).
|
||||
|
|
@ -79,8 +83,8 @@ You can start Seafile server simply by
|
|||
kubectl apply -f /opt/seafile-k8s-yaml/
|
||||
```
|
||||
|
||||
!!! warning
|
||||
By default, Seafile will access the ***Memcached*** and ***Elasticsearch*** with the specific service name:
|
||||
!!! warning "Important for Pro edition"
|
||||
By default, Seafile (***Pro***) will access the ***Memcached*** and ***Elasticsearch*** with the specific service name:
|
||||
|
||||
- ***Memcached***: `memcached` with port 11211
|
||||
- ***Elasticsearch***: `elasticsearch` with port 9200
|
||||
|
|
@ -98,7 +102,7 @@ kubectl apply -f /opt/seafile-k8s-yaml/
|
|||
kubectl apply -f /opt/seafile-k8s-yaml/
|
||||
```
|
||||
|
||||
## Activating the Seafile License
|
||||
## Activating the Seafile License (Pro)
|
||||
|
||||
If you have a `seafile-license.txt` license file, simply put it in the volume of the Seafile container. The volumne's default path in the Compose file is `/opt/seafile-data`. If you have modified the path, save the license file under your custom path.
|
||||
|
||||
|
|
|
|||
|
|
@ -10,4 +10,20 @@ Seafile docker based installation consist of the following components (docker im
|
|||
|
||||

|
||||
|
||||
!!! note "Seafile version 11.0 or later is required to work with SeaDoc"
|
||||
!!! note "Seafile version 11.0 or later is required to work with SeaDoc"
|
||||
|
||||
## Document guidelines
|
||||
|
||||
### Single Node deployment
|
||||
- Deploy from Docker image:
|
||||
- [Seafile CE](./setup_ce_by_docker.md)
|
||||
- [Seafile Pro](./setup_pro_by_docker.md)
|
||||
- Deploy from Kubernetes (K8S) with [*Docker-cri*](https://mirantis.github.io/cri-dockerd/usage/install/):
|
||||
- Deploy by [Seafile Helm Chart](./helm_chart_single_node.md)
|
||||
- Deploy by [Seafile K8S resources files](./k8s_single_node.md)
|
||||
|
||||
### Cluster (Pro only)
|
||||
- Deploy from [Docker](./cluster_deploy_with_docker.md)
|
||||
- Deploy from Kubernetes (K8S) with [*Docker-cri*](https://mirantis.github.io/cri-dockerd/usage/install/):
|
||||
- Deploy by [Seafile Helm Chart](./helm_chart_cluster.md)
|
||||
- Deploy by [Seafile K8S resources files](./cluster_deploy_with_k8s.md)
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
# Installation of Seafile Server Community Edition with Docker
|
||||
|
||||
## Requirements
|
||||
## System requirements
|
||||
|
||||
Seafile Community Edition requires a minimum of 2 cores and 2GB RAM.
|
||||
Please refer [here](./system_requirements.md#seafile-ce) for system requirements about Seafile CE.
|
||||
|
||||
## Getting started
|
||||
|
||||
|
|
|
|||
|
|
@ -2,32 +2,9 @@
|
|||
|
||||
This manual explains how to deploy and run Seafile Server Professional Edition (Seafile PE) on a Linux server using Docker and Docker Compose. The deployment has been tested for Debian/Ubuntu and CentOS, but Seafile PE should also work on other Linux distributions.
|
||||
|
||||
## Requirements
|
||||
## System requirements
|
||||
|
||||
Seafile PE docker requires a minimum of 4 cores and 4GB RAM.
|
||||
|
||||
!!! note "Other requirements for Seafile PE"
|
||||
- **By default**, Seafile Pro will use ***Elasticsearch*** as the files indexer
|
||||
|
||||
Please make sure the [mmapfs counts](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-store.html#mmapfs) do not cause excptions like out of memory, which can be increased by following command (see <https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html> for futher details):
|
||||
|
||||
```shell
|
||||
sysctl -w vm.max_map_count=262144 #run as root
|
||||
```
|
||||
|
||||
or modify **/etc/sysctl.conf** and reboot to set this value permanently:
|
||||
|
||||
```shell
|
||||
nano /etc/sysctl.conf
|
||||
|
||||
# modify vm.max_map_count
|
||||
vm.max_map_count=262144
|
||||
```
|
||||
- If your machine **dose not** have enough requirements, 2 Cores and 2GB RAM are minimum by chosing one of following two ways **after first-time deployment** of Seafile Pro docker:
|
||||
|
||||
- Use [*SeaSearch*](./use_seasearch.md), a lightweight search engine built on open source search engine [*ZincSearch*](https://zincsearch-docs.zinc.dev/), as the indexer
|
||||
|
||||
- Deploy *Elasticsearch* in another machine, and modify `es_host` and `es_port` in [seafevents.conf](../config/seafevents-conf.md)
|
||||
Please refer [here](./system_requirements.md#seafile-pro) for system requirements about Seafile PE.
|
||||
|
||||
!!! tip "About license"
|
||||
Seafile PE can be used without a paid license with up to three users. Licenses for more user can be purchased in the [Seafile Customer Center](https://customer.seafile.com) or contact Seafile Sales at [sales@seafile.com](mailto:sales@seafile.com). For futher details, please refer the [license page](../setup_binary/seafile_professional_sdition_software_license_agreement.md) of Seafile PE.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,96 @@
|
|||
# System requirements
|
||||
|
||||
This page shows the minimal requirements of Seafile.
|
||||
|
||||
!!! note "About the system requirements"
|
||||
The system requirements in this document refer to the **minimum system hardware requirements** are the suggestions to smooth operation of Seafile (**network connection is not discussed here**). If not otherwise specified, it will apply to **all deployment scenarios**, but for ***binary installations***, the libraries we provided in the documents are only supporting the **following operation systems**:
|
||||
|
||||
- Ubuntu 24.04
|
||||
- Ubuntu 22.04
|
||||
- Debian 12
|
||||
- Debian 11
|
||||
|
||||
|
||||
!!! warning "Important: Information of *Docker-base deployment integration services*"
|
||||
- **In each case**, we have shown the services integrated names ***Docker-base deployment integration services*** by standard installation with *Docker*. If these services are already installed and you do not need them in your deployment, you need to refer to the corresponding documentation and disable them in the Docker resource file.However, **we do not recommend that you reduce the corresponding system resource requirements on our suggestions**, unless otherwise specified.
|
||||
|
||||
- However, if you use other installation methods (e.g., *binary deployment*, *K8S deployment*) you have to make sure you have installed these services, because **it will not include the installation of that**.
|
||||
|
||||
- If you need to install other extensions not included here (e.g., *OnlyOffice*), you should **increase the system requirements** appropriately above our recommendations.
|
||||
|
||||
## Seafile CE
|
||||
|
||||
- **Memory requirements**: 2G
|
||||
- **CPU requirements**: 2 cores, more than 2G Hz are recommended
|
||||
- **Hard disk requirements**: 10G availables, more than 50G are recommended
|
||||
- **Docker-base deployment integration services**:
|
||||
- *Seafile*
|
||||
- *Memcached*
|
||||
- *Mariadb*
|
||||
- *Seadoc*
|
||||
- *Caddy*
|
||||
|
||||
## Seafile Pro
|
||||
|
||||
- **CPU and Memory requirements**:
|
||||
|
||||
| Deployment Scenarios | CPU Requirements | Memory Requirements | Indexer / Search Engine |
|
||||
| :--: | :--: | :--: | :--: |
|
||||
| Docker deployment | 4 Cores | 4G | Default |
|
||||
| All | 4 Cores | 4G | With existing ***ElasticSearch*** service, but on the same machine / node |
|
||||
| All | 2 Cores | 2G | With existing ***ElasticSearch*** service, and on another machine / node |
|
||||
| All | 2 Cores | 2G | Use *SeaSearch* as the search engine, instead of *ElasticSearch* |
|
||||
|
||||
- **Hard disk requirements**: More than 50G are recommended
|
||||
- **Docker-base deployment integration services**:
|
||||
- *Seafile*
|
||||
- *Memcached*
|
||||
- *Mariadb*
|
||||
- *ElasticSearch*
|
||||
- *Seadoc*
|
||||
- *Caddy*
|
||||
|
||||
!!! tip "More details of files indexer used in Seafile PE"
|
||||
- **By default**, Seafile Pro will use ***Elasticsearch*** as the files indexer
|
||||
|
||||
Please make sure the [mmapfs counts](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-store.html#mmapfs) do not cause excptions like out of memory, which can be increased by following command (see <https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html> for futher details):
|
||||
|
||||
```shell
|
||||
sysctl -w vm.max_map_count=262144 #run as root
|
||||
```
|
||||
|
||||
or modify **/etc/sysctl.conf** and reboot to set this value permanently:
|
||||
|
||||
```shell
|
||||
nano /etc/sysctl.conf
|
||||
|
||||
# modify vm.max_map_count
|
||||
vm.max_map_count=262144
|
||||
```
|
||||
- If your machine **dose not** have enough requirements, 2 Cores and 2GB RAM are minimum by chosing one of following two ways **after first-time deployment**:
|
||||
|
||||
- Use [*SeaSearch*](./use_seasearch.md), a lightweight search engine built on open source search engine [*ZincSearch*](https://zincsearch-docs.zinc.dev/), as the indexer
|
||||
|
||||
- Deploy *Elasticsearch* in another machine, and modify `es_host` and `es_port` in [seafevents.conf](../config/seafevents-conf.md)
|
||||
|
||||
## Seafile Cluster
|
||||
|
||||
- **Node requirements**: Minimal 2 nodes (one frontend and one backend), but recommend more than 3 nodes (two frontend and three backend)
|
||||
|
||||
!!! tip "More details about the number of nodes"
|
||||
1. If your number of nodes does not meet our recommended number (i.e. 3 nodes), please adjust according to the following strategies:
|
||||
- **2 nodes**: A frontend service and a backend service on the same node
|
||||
- **1 node**: Please deploy Seafile in a single node instead a cluster.
|
||||
2. If you have more available nodes for Seafile server, please provide them to the Seafile frontend service and **make sure there is only one backend service running**. Here is a simple relationship between the number of Seafile frontent services ($N_f$) and total nodes ($N_t$):
|
||||
$$
|
||||
N_f = N_t - 1,
|
||||
$$
|
||||
where the number **1** means one node for Seafile backend service.
|
||||
|
||||
- **Other system requirements**: similar with [Seafile Pro](#seafile-pro), but make sure that **all nodes** should meet this condition
|
||||
- **Docker-base deployment integration services**: *Seafile* only
|
||||
|
||||
!!! note "More suggestions in Seafile cluster"
|
||||
- We assume you have already deployed ***Memcached*** (*redis* is not supported in cluster), ***MariaDB***, file indexer (e.g., ***ElasticSearch***) in separate machines and use ***S3*** like object storage.
|
||||
|
||||
- Generally, when deploying Seafile in a cluster, we recommend that you use a **storage backend** (such as AWS S3) to store Seafile data. However, according to the Seafile image startup rules and K8S persistent storage strategy, you still need to **prepare a persistent directory** for configuring the startup of the Seafile container.
|
||||
|
|
@ -1,31 +1,11 @@
|
|||
# Cluster Deployment
|
||||
|
||||
!!! tip "Since version 8.0, the recommend way to install Seafile clsuter is using [*Docker*](../setup/cluster_deploy_with_docker.md)"
|
||||
!!! tip
|
||||
Since version 8.0, the recommend way to install Seafile clsuter is using [*Docker*](../setup/cluster_deploy_with_docker.md)
|
||||
|
||||
## Environment
|
||||
## Cluster requirements
|
||||
|
||||
!!! success "About Redis"
|
||||
Since version 11.0, Redis can also be used as memory cache server. But currently only single-node Redis is supported.
|
||||
|
||||
!!! note "Prerequisites"
|
||||
|
||||
- We assume you have already deployed memory cache server (e.g., ***Memcached***), ***MariaDB***, file indexer (e.g., ***ElasticSearch***) in separate machines and use ***S3*** like object storage.
|
||||
|
||||
- Usually, each node of Seafile Cluster should have at least **2 cores** and **2G memory**. If the above services are deployed together with a node in the Seafile cluster especially ***ElasticSearch***, we recommend that you prepare **4 cores** and **4G memory** for that node. If you donnot have enough hardware requirements for *ElasticSearch*, you can use [*SeaSearch*](./use_seasearch.md) as search engine, which is more lightweight.
|
||||
|
||||
System: Ubuntu 24.04/22.04, Debian 12/11
|
||||
|
||||
Seafile Server: 2 frontend nodes, 1 backend node
|
||||
|
||||
!!! tip "More details about the number of nodes"
|
||||
1. If your number of nodes does not meet our recommended number (i.e. 3 nodes), please adjust according to the following strategies:
|
||||
- **2 nodes**: A frontend service and a backend service on the same node
|
||||
- **1 node**: Please refer [here](./installation_pro.md) to deploy Seafile in a single node instead a cluster.
|
||||
2. If you have more available nodes for Seafile server, please provide them to the Seafile frontend service and **make sure there is only one backend service running**. Here is a simple relationship between the number of Seafile frontent services ($N_f$) and total nodes ($N_t$):
|
||||
$$
|
||||
N_f = N_t - 1,
|
||||
$$
|
||||
where the number **1** means one node for Seafile backend service.
|
||||
Please refer [here](../setup/system_requirements.md#seafile-cluster) for the details about the cluster requirements for **all nodes** in Seafile cluster.
|
||||
|
||||
## Preparation (all nodes)
|
||||
|
||||
|
|
@ -33,7 +13,8 @@ Seafile Server: 2 frontend nodes, 1 backend node
|
|||
|
||||
Please follow [here](./installation_pro.md#installing-prerequisites) to install prerequisites
|
||||
|
||||
!!! note "Cache server (the first step) is not necessary, if you donot wish this node deploy it"
|
||||
!!! note
|
||||
Cache server (the first step) is not necessary, if you donot wish this node deploy it.
|
||||
|
||||
### Create user `seafile`
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ This manual explains how to deploy and run Seafile Server Community Edition (Sea
|
|||
|
||||
## Requirements
|
||||
|
||||
Seafile CE for x86 architecture requires a minimum of 2 cores and 2GB RAM.
|
||||
Please refer [here](../setup/system_requirements.md#seafile-ce) for system requirements about Seafile CE.
|
||||
|
||||
|
||||
## Setup
|
||||
|
|
@ -349,16 +349,6 @@ Seahub caches items(avatars, profiles, etc) on file system by default(/tmp/seahu
|
|||
|
||||
2. Refer to [Django's documentation about using Redis cache](https://docs.djangoproject.com/en/4.2/topics/cache/#redis) to add Redis configurations to `seahub_settings.py`.
|
||||
|
||||
|
||||
### Tweaking conf files
|
||||
|
||||
Seafile's config files as created by the setup script are prepared for Seafile running behind a reverse proxy.
|
||||
|
||||
To access Seafile's web interface and to create working sharing links without a reverse proxy, you need to modify two configuration files in `/opt/seafile/conf`:
|
||||
|
||||
- `seahub_settings.py`: Add port 8000 to the `SERVICE_URL` (i.e., SERVICE_URL = 'http://seafile.example.com:8000/').
|
||||
- `gunicorn.conf.py`: Change the bind to "0.0.0.0:8000" (i.e., bind = "0.0.0.0:8000")
|
||||
|
||||
### Create the `.env` file in `conf/` directory
|
||||
|
||||
```sh
|
||||
|
|
|
|||
|
|
@ -4,24 +4,7 @@ This manual explains how to deploy and run Seafile Server Professional Edition (
|
|||
|
||||
## Requirements
|
||||
|
||||
Seafile PE requires a minimum of 2 cores and 2GB RAM.
|
||||
|
||||
!!! note "Other requirements for Seafile PE"
|
||||
- If elasticsearch is installed on the same server, the minimum requirements are 4 cores and 4 GB RAM and make sure the [mmapfs counts](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-store.html#mmapfs) do not cause excptions like out of memory, which can be increased by following command (see <https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html> for futher details):
|
||||
|
||||
```shell
|
||||
sysctl -w vm.max_map_count=262144 #run as root
|
||||
```
|
||||
|
||||
or modify **/etc/sysctl.conf** and reboot to set this value permanently:
|
||||
|
||||
```shell
|
||||
nano /etc/sysctl.conf
|
||||
|
||||
# modify vm.max_map_count
|
||||
vm.max_map_count=262144
|
||||
```
|
||||
- If your machine **dose not** have enough requirements, 2 Cores and 2GB RAM are minimum by using [*SeaSearch*](../setup/use_seasearch.md), a lightweight search engine built on open source search engine [*ZincSearch*](https://zincsearch-docs.zinc.dev/), as the indexer
|
||||
Please refer [here](../setup/system_requirements.md#seafile-pro) for system requirements about Seafile PE.
|
||||
|
||||
Seafile PE can be used without a paid license with up to three users. Licenses for more user can be purchased in the [Seafile Customer Center](https://customer.seafile.com) or contact Seafile Sales at [sales@seafile.com](mailto:sales@seafile.com) or one of [our partners](https://www.seafile.com/en/partner/).
|
||||
|
||||
|
|
@ -101,11 +84,11 @@ Seafile uses the `mysql_native_password` plugin for authentication. The versions
|
|||
|
||||
sudo pip3 install --timeout=3600 django==4.2.* future==1.0.* mysqlclient==2.1.* \
|
||||
pymysql pillow==10.4.* pylibmc captcha==0.6.* markupsafe==2.0.1 jinja2 sqlalchemy==2.0.* \
|
||||
psd-tools django-pylibmc django_simple_captcha==0.6.* djangosaml2==1.9.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 python-ldap==3.4.3 lxml gevent==24.2.*
|
||||
psd-tools django-pylibmc django_simple_captcha==0.6.* djangosaml2==1.9.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 python-ldap==3.2.0 lxml gevent==24.2.*
|
||||
|
||||
```
|
||||
|
||||
=== "Debian 11"
|
||||
=== "Debian 11"
|
||||
|
||||
```
|
||||
sudo apt-get install -y python3 python3-dev python3-setuptools python3-pip libmysqlclient-dev-compat ldap-utils libldap2-dev libsasl2-dev
|
||||
|
|
@ -115,7 +98,7 @@ Seafile uses the `mysql_native_password` plugin for authentication. The versions
|
|||
|
||||
sudo pip3 install --timeout=3600 django==4.2.* future==1.0.* mysqlclient==2.2.* \
|
||||
pymysql pillow==10.4.* pylibmc captcha==0.6.* markupsafe==2.0.1 jinja2 sqlalchemy==2.0.* \
|
||||
psd-tools django-pylibmc django_simple_captcha==0.6.* djangosaml2==1.9.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 python-ldap==3.4.3 lxml gevent==24.2.*
|
||||
psd-tools django-pylibmc django_simple_captcha==0.6.* djangosaml2==1.9.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 python-ldap==3.2.0 lxml gevent==24.2.*
|
||||
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -64,13 +64,22 @@ Elasticsearch version is not changed in Seafile version 12.0
|
|||
|
||||
Note, you should install Python libraries system wide using root user or sudo mode.
|
||||
|
||||
For Ubuntu 22.04/24.04
|
||||
=== "Ubuntu 24.04 / Debian 12"
|
||||
|
||||
```sh
|
||||
sudo pip3 install future==1.0.* mysqlclient==2.2.* pillow==10.4.* sqlalchemy==2.0.* pillow_heif==0.18.0 \
|
||||
gevent==24.2.* captcha==0.6.* django_simple_captcha==0.6.* djangosaml2==1.9.* \
|
||||
pysaml2==7.3.* pycryptodome==3.20.* cffi==1.17.0 python-ldap==3.4.*
|
||||
```
|
||||
|
||||
=== "Ubuntu 22.04 / Debian 11"
|
||||
|
||||
```sh
|
||||
sudo pip3 install future==1.0.* mysqlclient==2.1.* pillow==10.4.* sqlalchemy==2.0.* pillow_heif==0.18.0 \
|
||||
gevent==24.2.* captcha==0.6.* django_simple_captcha==0.6.* djangosaml2==1.9.* \
|
||||
pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 python-ldap==3.2.0
|
||||
```
|
||||
|
||||
```sh
|
||||
sudo pip3 install future==1.0.* mysqlclient==2.2.* pillow==10.4.* sqlalchemy==2.0.* \
|
||||
gevent==24.2.* captcha==0.6.* django_simple_captcha==0.6.* djangosaml2==1.9.* \
|
||||
pysaml2==7.3.* pycryptodome==3.20.* cffi==1.17.0 python-ldap==3.4.*
|
||||
```
|
||||
|
||||
## Upgrade to 12.0 (for binary installation)
|
||||
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ nav:
|
|||
- Contribution: introduction/contribution.md
|
||||
- Setup:
|
||||
- Overview: setup/overview.md
|
||||
- System requirements: setup/system_requirements.md
|
||||
- HTTPS and Caddy: setup/caddy.md
|
||||
- Single node installation:
|
||||
- Setup community edition: setup/setup_ce_by_docker.md
|
||||
|
|
@ -101,14 +102,18 @@ nav:
|
|||
- Multiple Storage Backends: setup/setup_with_multiple_storage_backends.md
|
||||
- Data migration: setup/migrate_backends_data.md
|
||||
- Use SeaSearch as search engine (Pro): setup/use_seasearch.md
|
||||
- Setup with Kubernetes (K8S, single pod mode): setup/k8s_single_node.md
|
||||
- Setup with Kubernetes (K8S, single pod mode):
|
||||
- Setup by Seafile Helm Chart: setup/helm_chart_single_node.md
|
||||
- Setup by K8S resource files: setup/k8s_single_node.md
|
||||
- Seafile Docker autostart: setup/seafile_docker_autostart.md
|
||||
- Deploy with an existing MySQL server: setup/setup_with_an_existing_mysql_server.md
|
||||
- Use other reverse proxy: setup/use_other_reverse_proxy.md
|
||||
- Run Seafile as non root user inside docker: setup/run_seafile_as_non_root_user_inside_docker.md
|
||||
- Cluster installation (Pro):
|
||||
- Seafile Docker Cluster Deployment: setup/cluster_deploy_with_docker.md
|
||||
- Setup with Kubernetes (K8s): setup/cluster_deploy_with_k8s.md
|
||||
- Setup with Kubernetes (K8s):
|
||||
- Setup by Seafile Helm Chart: setup/helm_chart_cluster.md
|
||||
- Setup by K8S resource files: setup/cluster_deploy_with_k8s.md
|
||||
- Migration:
|
||||
- Migration from Seafile Community: setup/migrate_ce_to_pro_with_docker.md
|
||||
- Migrate from non-docker deployment: setup/migrate_non_docker_to_docker.md
|
||||
|
|
|
|||
Loading…
Reference in New Issue