Skip to content

Commit e644d49

Browse files
committed
Add docs/hosting/deployment/s3-deploy.rst
1 parent 120b362 commit e644d49

3 files changed

Lines changed: 287 additions & 0 deletions

File tree

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
.. Parsec Cloud (https://parsec.cloud) Copyright (c) BUSL-1.1 2016-present Scille SAS
2+
3+
.. _doc_hosting_deployment_s3:
4+
5+
=======================
6+
S3 Object Storage Setup
7+
=======================
8+
9+
Parsec is compatible with different object storage solutions, including:
10+
11+
- `OpenStack Swift <https://docs.openstack.org/swift/latest/>`_
12+
- `Amazon S3 <https://aws.amazon.com/s3/>`_ or any S3-compatible storage such as `Outscale's OOS <https://docs.outscale.com/en/userguide/OUTSCALE-Object-Storage-OOS.html>`_ (most storage providers offer S3-compatible APIs)
13+
- A RAID configuration combining multiple storages
14+
15+
However, the most common deployment uses S3-compatible storage.
16+
17+
This guide provides instructions for setting up an S3-compatible bucket for use with Parsec.
18+
19+
.. note::
20+
21+
Parsec has a very basic use of the object storage: it only reads existing objects and creates new objects.
22+
There is no deletion or listing of objects. Therefore, enabling versioning for the bucket is not strictly
23+
required, but it is **highly recommended** to prevent data loss from overwriting an existing object (since S3
24+
uses eventual consistency, the ``s3:PutObject`` policy always allows overwriting an existing object).
25+
26+
Prerequisites
27+
=============
28+
29+
- An S3-compatible storage provider account
30+
- The `AWS CLI <https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html>`_
31+
- Appropriate permissions to create buckets and manage policies
32+
33+
.. _doc_hosting_deployment_s3_create_bucket:
34+
35+
Create the Bucket
36+
-----------------
37+
38+
Create a new bucket for Parsec data storage:
39+
40+
.. code-block:: bash
41+
42+
aws s3api create-bucket \
43+
--bucket <BUCKET_NAME>
44+
45+
Replace ``<BUCKET_NAME>`` with your desired bucket name.
46+
47+
.. note::
48+
49+
The exact command may vary depending on your storage provider. Consult your provider's documentation
50+
for the appropriate command syntax.
51+
52+
For example, with Outscale:
53+
54+
.. code-block:: bash
55+
56+
aws s3api create-bucket \
57+
--profile <PROFILE_NAME> \
58+
--endpoint https://oos.eu-west-2.outscale.com \
59+
--bucket <BUCKET_NAME>
60+
61+
.. _doc_hosting_deployment_s3_enable_versioning:
62+
63+
Enable Versioning
64+
-----------------
65+
66+
Enable versioning on the bucket to protect against accidental overwrites:
67+
68+
.. code-block:: bash
69+
70+
aws s3api put-bucket-versioning \
71+
--bucket <BUCKET_NAME> \
72+
--versioning-configuration Status=Enabled
73+
74+
.. _doc_hosting_deployment_s3_limit_access:
75+
76+
Limit Access with a Dedicated User
77+
----------------------------------
78+
79+
For security, create a dedicated IAM user with restricted permissions to only the necessary operations.
80+
81+
The following bucket policy grants only the required permissions for Parsec to function:
82+
83+
.. code-block:: bash
84+
85+
aws s3api put-bucket-policy \
86+
--bucket <BUCKET_NAME> \
87+
--policy '{
88+
"Version": "2012-10-17",
89+
"Statement": [
90+
{
91+
"Effect": "Allow",
92+
"Principal": {
93+
"AWS": "arn:aws:iam::<ACCOUNT_ID>:root"
94+
},
95+
"Action": [
96+
"s3:GetObject",
97+
"s3:PutObject"
98+
],
99+
"Resource": "arn:aws:s3:::<BUCKET_NAME>/*"
100+
},
101+
{
102+
"Effect": "Allow",
103+
"Principal": {
104+
"AWS": "arn:aws:iam::<ACCOUNT_ID>:root"
105+
},
106+
"Action": [
107+
"s3:ListBucket"
108+
],
109+
"Resource": "arn:aws:s3:::<BUCKET_NAME>"
110+
}
111+
]
112+
}'
113+
114+
Replace the following placeholders:
115+
116+
- ``<BUCKET_NAME>``: Your bucket name
117+
- ``<ACCOUNT_ID>``: The AWS account ID or IAM user that needs access

docs/hosting/deployment/server-deploy.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ The Parsec Server depends on the following components:
3838

3939
- A `PostgreSQL`_ database to store Parsec metadata.
4040
- An S3-like object storage (e.g. `OpenStack Swift`_ or `Amazon S3`_) to store encrypted data.
41+
See :ref:`S3 Object Storage Setup <doc_hosting_deployment_s3>` for configuration instructions.
4142
- An `SMTP server`_ to allow sending emails from the Parsec Server.
4243
- A `TSL/SSL server certificate`_ for ``HTTPS`` communication with Parsec client applications.
4344

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# Copyright (C) 2016-present, Scille SAS
2+
# This file is distributed under the same license as the Parsec package.
3+
# Parsec dev <dev-parsec@scille.fr>, 2026.
4+
msgid ""
5+
msgstr ""
6+
"Project-Id-Version: Parsec Documentation 3.9.1-a.0+dev\n"
7+
"Report-Msgid-Bugs-To: \n"
8+
"POT-Creation-Date: 2026-06-08 10:51+0200\n"
9+
"PO-Revision-Date: 2026-06-08 12:00+0200\n"
10+
"Last-Translator: Parsec Translation Team <translation@scille.fr>\n"
11+
"Language: fr\n"
12+
"Language-Team: fr <dev-parsec@scille.fr>\n"
13+
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
14+
"MIME-Version: 1.0\n"
15+
"Content-Type: text/plain; charset=utf-8\n"
16+
"Content-Transfer-Encoding: 8bit\n"
17+
"Generated-By: Babel 2.17.0\n"
18+
19+
#: ../../hosting/deployment/s3-deploy.rst:7
20+
msgid "S3 Object Storage Setup"
21+
msgstr "Configuration du stockage objet S3"
22+
23+
#: ../../hosting/deployment/s3-deploy.rst:9
24+
msgid ""
25+
"Parsec is compatible with different object storage solutions, including:"
26+
msgstr ""
27+
"Parsec est compatible avec différentes solutions de stockage objet, "
28+
"notamment :"
29+
30+
#: ../../hosting/deployment/s3-deploy.rst:11
31+
msgid "`OpenStack Swift <https://docs.openstack.org/swift/latest/>`_"
32+
msgstr "`OpenStack Swift <https://docs.openstack.org/swift/latest/>`_"
33+
34+
#: ../../hosting/deployment/s3-deploy.rst:12
35+
#, fuzzy
36+
msgid ""
37+
"`Amazon S3 <https://aws.amazon.com/s3/>`_ or any S3-compatible storage such "
38+
"as `Outscale's OOS <https://docs.outscale.com/en/userguide/OUTSCALE-Object-"
39+
"Storage-OOS.html>`_ (most storage providers offer S3-compatible APIs)"
40+
msgstr ""
41+
"`Amazon S3 <https://aws.amazon.com/s3/>`_ ou tout stockage compatible S3 "
42+
"comme `Outscale OOS <https://docs.outscale.com/en/userguide/OUTSCALE-Object-"
43+
"Storage-OOS.html>`_ (la plupart des fournisseurs de stockage proposent des "
44+
"API compatibles S3)"
45+
46+
#: ../../hosting/deployment/s3-deploy.rst:13
47+
msgid "A RAID configuration combining multiple storages"
48+
msgstr "Une configuration RAID combinant plusieurs stockages"
49+
50+
#: ../../hosting/deployment/s3-deploy.rst:15
51+
msgid "However, the most common deployment uses S3-compatible storage."
52+
msgstr ""
53+
"Cependant, le déploiement le plus courant utilise un stockage compatible S3."
54+
55+
#: ../../hosting/deployment/s3-deploy.rst:17
56+
msgid ""
57+
"This guide provides instructions for setting up an S3-compatible bucket for "
58+
"use with Parsec."
59+
msgstr ""
60+
"Ce guide fournit des instructions pour configurer un bucket compatible S3 "
61+
"pour une utilisation avec Parsec."
62+
63+
#: ../../hosting/deployment/s3-deploy.rst:21
64+
msgid ""
65+
"Parsec has a very basic use of the object storage: it only reads existing "
66+
"objects and creates new objects. There is no deletion or listing of objects. "
67+
"Therefore, enabling versioning for the bucket is not strictly required, but "
68+
"it is **highly recommended** to prevent data loss from overwriting an "
69+
"existing object (since S3 uses eventual consistency, the ``s3:PutObject`` "
70+
"policy always allows overwriting an existing object)."
71+
msgstr ""
72+
"Parsec utilise le stockage objet de manière très basique : il ne fait que "
73+
"lire des objets existants et en créer de nouveaux. Il n'y a ni suppression "
74+
"ni listage des objets existants. Par conséquent, l'activation du versionnage "
75+
"pour le bucket n'est pas strictement obligatoire, mais elle est **fortement "
76+
"recommandée** pour éviter la perte de données en cas d'écrasement d'un objet "
77+
"existant (puisque S3 utilise une cohérence éventuelle, la politique ``s3:"
78+
"PutObject`` permet toujours d'écraser un objet existant)."
79+
80+
#: ../../hosting/deployment/s3-deploy.rst:27
81+
msgid "Prerequisites"
82+
msgstr "Prérequis"
83+
84+
#: ../../hosting/deployment/s3-deploy.rst:29
85+
msgid "An S3-compatible storage provider account"
86+
msgstr "Un compte auprès d'un fournisseur de stockage compatible S3"
87+
88+
#: ../../hosting/deployment/s3-deploy.rst:30
89+
msgid ""
90+
"The `AWS CLI <https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-"
91+
"getting-started.html>`_"
92+
msgstr ""
93+
"La `CLI AWS <https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-"
94+
"getting-started.html>`_"
95+
96+
#: ../../hosting/deployment/s3-deploy.rst:31
97+
msgid "Appropriate permissions to create buckets and manage policies"
98+
msgstr ""
99+
"Les permissions appropriées pour créer des buckets et gérer les politiques"
100+
101+
#: ../../hosting/deployment/s3-deploy.rst:36
102+
msgid "Create the Bucket"
103+
msgstr "Créer le bucket"
104+
105+
#: ../../hosting/deployment/s3-deploy.rst:38
106+
msgid "Create a new bucket for Parsec data storage:"
107+
msgstr "Créer un nouveau bucket pour le stockage des données Parsec :"
108+
109+
#: ../../hosting/deployment/s3-deploy.rst:45
110+
msgid "Replace ``<BUCKET_NAME>`` with your desired bucket name."
111+
msgstr "Remplacez ``<BUCKET_NAME>`` par le nom de bucket souhaité."
112+
113+
#: ../../hosting/deployment/s3-deploy.rst:49
114+
msgid ""
115+
"The exact command may vary depending on your storage provider. Consult your "
116+
"provider's documentation for the appropriate command syntax."
117+
msgstr ""
118+
"La commande exacte peut varier selon votre fournisseur de stockage. "
119+
"Consultez la documentation de votre fournisseur pour la syntaxe appropriée "
120+
"de la commande."
121+
122+
#: ../../hosting/deployment/s3-deploy.rst:52
123+
msgid "For example, with Outscale:"
124+
msgstr "Par exemple, avec Outscale :"
125+
126+
#: ../../hosting/deployment/s3-deploy.rst:64
127+
msgid "Enable Versioning"
128+
msgstr "Activer le versionnage"
129+
130+
#: ../../hosting/deployment/s3-deploy.rst:66
131+
msgid ""
132+
"Enable versioning on the bucket to protect against accidental overwrites:"
133+
msgstr ""
134+
"Activez le versionnage sur le bucket pour protéger contre les écrasements "
135+
"accidentels :"
136+
137+
#: ../../hosting/deployment/s3-deploy.rst:77
138+
msgid "Limit Access with a Dedicated User"
139+
msgstr "Limiter l'accès avec un utilisateur dédié"
140+
141+
#: ../../hosting/deployment/s3-deploy.rst:79
142+
msgid ""
143+
"For security, create a dedicated IAM user with restricted permissions to "
144+
"only the necessary operations."
145+
msgstr ""
146+
"Pour des raisons de sécurité, créez un utilisateur IAM dédié avec des "
147+
"permissions restreintes aux seules opérations nécessaires."
148+
149+
#: ../../hosting/deployment/s3-deploy.rst:81
150+
msgid ""
151+
"The following bucket policy grants only the required permissions for Parsec "
152+
"to function:"
153+
msgstr ""
154+
"La politique de bucket suivante accorde uniquement les permissions "
155+
"nécessaires pour que Parsec fonctionne :"
156+
157+
#: ../../hosting/deployment/s3-deploy.rst:114
158+
msgid "Replace the following placeholders:"
159+
msgstr "Remplacez les espaces réservés suivants :"
160+
161+
#: ../../hosting/deployment/s3-deploy.rst:116
162+
msgid "``<BUCKET_NAME>``: Your bucket name"
163+
msgstr "``<BUCKET_NAME>`` : le nom de votre bucket"
164+
165+
#: ../../hosting/deployment/s3-deploy.rst:117
166+
msgid "``<ACCOUNT_ID>``: The AWS account ID or IAM user that needs access"
167+
msgstr ""
168+
"``<ACCOUNT_ID>`` : l'ID de compte AWS ou l'utilisateur IAM nécessitant "
169+
"l'accès"

0 commit comments

Comments
 (0)