Documentation + docker-compose.yml update (#9653)
Related to #9469 #9455 #9419 #8943
This commit is contained in:
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<h2 align="center" >The #1 Open-Source CRM </h3>
|
<h2 align="center" >The #1 Open-Source CRM </h3>
|
||||||
|
|
||||||
<p align="center"><a href="https://twenty.com">🌐 Website</a> · <a href="https://twenty.com/developers">📚 Documentation</a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty"><img src="./packages/twenty-website/public/images/readme/figma-icon.png" width="12" height="12"/> Figma</a><p>
|
<p align="center"><a href="https://twenty.com">🌐 Website</a> · <a href="https://twenty.com/developers">📚 Documentation</a> · <a href="https://github.com/orgs/twentyhq/projects/1"><img src="./packages/twenty-website/public/images/readme/planner-icon.svg" width="12" height="12"/> Roadmap </a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty"><img src="./packages/twenty-website/public/images/readme/figma-icon.png" width="12" height="12"/> Figma</a><p>
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||||
|
<svg version="1.1" id="_x36_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
viewBox="0 0 512 512" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#504F4F;" d="M512,28.891v308.708c0,0.986-0.071,1.973-0.141,2.959c-0.07,0.916-0.212,1.832-0.423,2.678
|
||||||
|
c-2.819,13.177-14.939,23.112-29.454,23.112H30.018c-1.762,0-3.523-0.141-5.214-0.423c-12.754-2.184-22.76-12.049-24.522-24.522
|
||||||
|
c-0.071-0.493-0.141-1.057-0.141-1.55C0,339.078,0,338.374,0,337.599V28.891c0-1.903,0.212-3.805,0.564-5.638
|
||||||
|
C3.312,10.006,15.502,0,30.018,0h451.964c1.057,0,2.184,0.071,3.241,0.141c1.057,0.141,2.044,0.282,3.1,0.493
|
||||||
|
c11.838,2.466,21.069,11.697,23.183,23.183c0.141,0.704,0.282,1.409,0.352,2.114C511.929,26.918,512,27.904,512,28.891z"/>
|
||||||
|
<path style="fill:#C2C1C1;" d="M80.119,0v366.419H28.82c-1.268,0-2.537-0.071-3.805-0.282
|
||||||
|
c-12.895-1.691-23.042-11.909-24.733-24.733c-0.071-0.493-0.141-1.057-0.141-1.55C0,339.078,0,338.374,0,337.599V28.891
|
||||||
|
c0-1.903,0.212-3.805,0.564-5.638C3.171,10.006,14.798,0,28.82,0H80.119z"/>
|
||||||
|
<path style="fill:#C2C1C1;" d="M512,28.891v308.708c0,0.986-0.071,1.973-0.141,2.959c-1.48,14.445-13.741,25.861-28.679,25.861
|
||||||
|
h-51.298V0h51.298c1.691,0,3.382,0.141,4.933,0.423c11.979,2.114,21.351,11.556,23.465,23.465
|
||||||
|
c0.141,0.705,0.211,1.339,0.282,2.043C511.929,26.918,512,27.904,512,28.891z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#FFFFFF;" d="M246.925,28.905v313.198H62.734c-5.9,0-11.303-2.148-15.463-5.674
|
||||||
|
c-5.176-4.385-8.477-10.941-8.477-18.265V52.844c0-13.224,10.715-23.939,23.94-23.939H246.925z"/>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#FFFFFF;" d="M254.348,28.905v313.198h184.191c5.9,0,11.303-2.148,15.462-5.674
|
||||||
|
c5.176-4.385,8.477-10.941,8.477-18.265V52.844c0-13.224-10.715-23.939-23.94-23.939H254.348z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<polygon style="fill:#E14D4B;" points="406.02,0 406.02,91.182 373.818,73.707 341.545,91.182 341.545,0 "/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M387.656,36.571h-11.063v-0.07l-3.03-9.372l-0.423-1.409h-0.141l-0.423,1.409l-3.1,9.442h-11.063
|
||||||
|
v0.141l8.949,6.624l-1.127,3.523l-2.396,7.328l0.141,0.071l9.09-6.765l9.02,6.765l0.141-0.071l-3.523-10.851l8.949-6.624V36.571z"
|
||||||
|
/>
|
||||||
|
<rect x="73.178" y="75.654" style="fill:#D8D8D8;" width="145.522" height="72.479"/>
|
||||||
|
<rect x="282.812" y="102.763" style="fill:#D8D8D8;" width="42.42" height="41.549"/>
|
||||||
|
<rect x="335.706" y="102.763" style="fill:#D8D8D8;" width="42.42" height="41.549"/>
|
||||||
|
<rect x="388.6" y="103.253" style="fill:#D8D8D8;" width="42.42" height="41.549"/>
|
||||||
|
<rect x="73.178" y="170.951" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
<rect x="73.178" y="207.12" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
<rect x="73.178" y="250.071" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
<rect x="73.178" y="283.98" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
<g>
|
||||||
|
<rect x="283.411" y="170.951" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
<rect x="283.411" y="207.12" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
<rect x="283.411" y="250.071" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
<rect x="283.411" y="283.98" style="fill:#D8D8D8;" width="145.522" height="6.782"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path style="opacity:0.03;fill:#040000;" d="M507.842,28.82v308.708c0,0.423-0.141,0.704-0.141,1.127
|
||||||
|
c-0.563,14.868-12.402,26.988-27.199,27.693c-0.493,0.071-0.987,0.071-1.48,0.071h-51.369v-0.071H49.255l30.864-30.864
|
||||||
|
l44.746-44.745l6.764-6.765l27.129-27.129l6.764-6.765l36.149-36.149l6.835-6.835l45.873-45.873l30.934-30.934l27.552-27.552
|
||||||
|
l54.117-54.117l10.358-10.288v-0.071l9.372-9.372L406.02,9.583L415.603,0h63.419c3.805,0,7.399,0.775,10.781,2.114
|
||||||
|
c7.117,2.889,12.825,8.597,15.714,15.714c1.268,3.03,2.044,6.342,2.184,9.794C507.701,28.045,507.842,28.468,507.842,28.82z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.0 KiB |
@ -16,9 +16,9 @@ For example, if you have a page that listens for the Enter key, and a modal that
|
|||||||
|
|
||||||
To handle this problem, we have a custom hook that makes it possible to listen to hotkeys without any conflict.
|
To handle this problem, we have a custom hook that makes it possible to listen to hotkeys without any conflict.
|
||||||
|
|
||||||
You place it in a component and it will listen to the hotkeys only when the component is mounted AND when the specified **hotkey scope** is active.
|
You place it in a component, and it will listen to the hotkeys only when the component is mounted AND when the specified **hotkey scope** is active.
|
||||||
|
|
||||||
## How to listen for hotkeys in practice ?
|
## How to listen for hotkeys in practice?
|
||||||
|
|
||||||
There are two steps involved in setting up hotkey listening :
|
There are two steps involved in setting up hotkey listening :
|
||||||
1. Set the [hotkey scope](#what-is-a-hotkey-scope-) that will listen to hotkeys
|
1. Set the [hotkey scope](#what-is-a-hotkey-scope-) that will listen to hotkeys
|
||||||
@ -131,7 +131,7 @@ It's important to use this pattern when you're not sure that just using a useEff
|
|||||||
|
|
||||||
Those conflicts can be hard to debug, and it might happen more often than not with useEffects.
|
Those conflicts can be hard to debug, and it might happen more often than not with useEffects.
|
||||||
|
|
||||||
## What is a hotkey scope ?
|
## What is a hotkey scope?
|
||||||
|
|
||||||
A hotkey scope is a string that represents a context in which the hotkeys are active. It is generally encoded as an enum.
|
A hotkey scope is a string that represents a context in which the hotkeys are active. It is generally encoded as an enum.
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ export const currentHotkeyScopeState = createState<HotkeyScope>({
|
|||||||
|
|
||||||
But this Recoil state should never be handled manually ! We'll see how to use it in the next section.
|
But this Recoil state should never be handled manually ! We'll see how to use it in the next section.
|
||||||
|
|
||||||
## How is it working internally ?
|
## How is it working internally?
|
||||||
|
|
||||||
We made a thin wrapper on top of [react-hotkeys-hook](https://react-hotkeys-hook.vercel.app/docs/intro) that makes it more performant and avoids unnecessary re-renders.
|
We made a thin wrapper on top of [react-hotkeys-hook](https://react-hotkeys-hook.vercel.app/docs/intro) that makes it more performant and avoids unnecessary re-renders.
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@ On the left sidebar, you can access the different pages of Twenty's Figma. This
|
|||||||
|
|
||||||
## Useful Tips
|
## Useful Tips
|
||||||
|
|
||||||
With read-only access, you can't edit the design but you can access all features that will be useful to convert the designs into code.
|
With read-only access, you can't edit the design, but you can access all features that will be useful to convert the designs into code.
|
||||||
|
|
||||||
### Use the Dev mode
|
### Use the Dev mode
|
||||||
|
|
||||||
|
|||||||
@ -83,7 +83,7 @@ curl -O https://raw.githubusercontent.com/twentyhq/twenty/refs/tags/v0.35.0/pack
|
|||||||
|
|
||||||
Start the Docker containers:
|
Start the Docker containers:
|
||||||
```bash
|
```bash
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 4: Access the Application
|
### Step 4: Access the Application
|
||||||
@ -158,8 +158,8 @@ We strongly recommend setting up Twenty behind a reverse proxy with SSL terminat
|
|||||||
|
|
||||||
For changes to take effect, restart the Docker containers:
|
For changes to take effect, restart the Docker containers:
|
||||||
```bash
|
```bash
|
||||||
docker-compose down
|
docker compose down
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Considerations
|
#### Considerations
|
||||||
|
|||||||
@ -94,8 +94,8 @@ If you can't log in after setup:
|
|||||||
```
|
```
|
||||||
2. Restart the Docker containers:
|
2. Restart the Docker containers:
|
||||||
```bash
|
```bash
|
||||||
docker-compose down
|
docker compose down
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Note the database:reset command will completely erase your database and recreate it from scratch.
|
Note the database:reset command will completely erase your database and recreate it from scratch.
|
||||||
@ -125,7 +125,7 @@ If you encounter issues not covered in this guide:
|
|||||||
|
|
||||||
View container logs for error messages:
|
View container logs for error messages:
|
||||||
```bash
|
```bash
|
||||||
docker-compose logs
|
docker compose logs
|
||||||
```
|
```
|
||||||
|
|
||||||
- Community Support:
|
- Community Support:
|
||||||
|
|||||||
@ -19,7 +19,9 @@ If you used Docker Compose, follow these steps:
|
|||||||
|
|
||||||
2. Upgrade the version by changing the `TAG` value in the .env file near your docker-compose.
|
2. Upgrade the version by changing the `TAG` value in the .env file near your docker-compose.
|
||||||
|
|
||||||
3. Bring Twenty back online with `docker-compose up -d`
|
3. Bring Twenty back online with `docker compose up -d`
|
||||||
|
|
||||||
|
If you want to upgrade your instance by few versions, e.g. from 0.33.0 to 0.35.0, you have to upgrade your instance sequentially, in this example from 0.33.0 to 0.34.0, then from 0.34.0 to 0.35.0.
|
||||||
|
|
||||||
|
|
||||||
## Version-specific upgrade steps
|
## Version-specific upgrade steps
|
||||||
@ -75,6 +77,8 @@ The `yarn command:prod cache:flush` command will flush the Redis cache.
|
|||||||
The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
|
The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
|
||||||
The `yarn command:prod upgrade-0.33` takes care of the data migration of all workspaces.
|
The `yarn command:prod upgrade-0.33` takes care of the data migration of all workspaces.
|
||||||
|
|
||||||
|
Starting from this version, twenty-postgres image for DB became deprecated and twenty-postgres-spilo is used instead.
|
||||||
|
If you want to keep using twenty-postgres image, simply replace `twentycrm/twenty-postgres:${TAG}` with `twentycrm/twenty-postgres` in docker-compose.yml.
|
||||||
|
|
||||||
### v0.31.0 to v0.32.0
|
### v0.31.0 to v0.32.0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user