Update README and Documentation (#1875)

* Added Overview page

* Revised Getting Started page

* Minor revision

* Edited readme, minor modifications to docs

* Removed sweep.yaml, .devcontainer, .ergomake

* Moved security.md to .github, added contributing.md

* changes as per code review
This commit is contained in:
Nimra Ahmed
2023-10-07 14:24:44 +05:00
committed by GitHub
parent da68654caf
commit 7b6ee4e0bf
22 changed files with 14485 additions and 478 deletions

View File

@ -1,4 +1,4 @@
{
"label": "Developer guide",
"position": 2
"label": "Contributor guide",
"position": 3
}

View File

@ -1,5 +1,5 @@
---
sidebar_position: 1
sidebar_position: 3
sidebar_custom_props:
icon: TbVocabulary
---

View File

@ -6,4 +6,4 @@
"customProps": {
"icon": "TbTerminal2"
}
}
}

View File

@ -1,15 +1,13 @@
---
sidebar_position: 0
title: Local Setup
sidebar_position: 1
sidebar_custom_props:
icon: TbDeviceDesktop
---
import ThemedImage from '@theme/ThemedImage';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Local Setup
This section will guide you through the Twenty installation on your local environment.
Twenty is designed to be developer-friendly, and your local installation should be up and running in a few minutes.
In a nutshell:
@ -24,25 +22,34 @@ twenty
└───server // contains the backend code for the application
└───infra // contains docker configurations for development and production deployments
```
___
## Yarn install (recommended)
# Recommended: Yarn Installation
**Note:** `npm` currently does not support local packages satisfactorily. We strongly recommend using `yarn` instead.
### 1. Pre-requisites
## Prerequisites
You need to have [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git), [node](https://nodejs.org/en/download) and [yarn](https://classic.yarnpkg.com/lang/en/docs/install/) installed on your computer.
Before you can install and use Twenty, make sure you install the following on your computer:
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [Node](https://nodejs.org/en/download)
- [yarn](https://classic.yarnpkg.com/lang/en/docs/install/)
---
## Step #1: Git Clone
In your terminal, run the following command:
### 2. Git clone
```
git clone git@github.com:twentyhq/twenty.git
```
### 3. PostgreSQL database
You also need to have a PostgreSQL database available. If you already have one available, you can skip this step.
## Step #2: Set up PostgreSQL Database
You need to have a PostgreSQL database available to be able to use Twenty. If you already have one available, you can skip this step.
If you don't, you can provision one through `docker` using the following command:
If you don't, you can provision one through `docker` using the following commands:
<Tabs>
<TabItem value="docker" label="Docker" default>
@ -54,26 +61,54 @@ If you don't, you can provision one through `docker` using the following command
This will create a Docker container, exposing a PostgresSQL instance at [http://localhost:5432](http://localhost:5432).
This instance is containing two databases: `default` and `test`
This instance contains two databases: `default` and `test`
You can access them using `twenty` postgres user (password: `twenty`)
</TabItem>
<TabItem value="linux-wsl" label="Linux / Windows WSL">
Install PostgresSQL on WSL2:
To install PostgresSQL on WSL2, use the following commands:
```bash
cd twenty/infra/dev/scripts && sudo ./setup-database.sh
sudo apt update
sudo apt install postgresql postgresql-contrib
```
This script will install and setup PostgreSQL with dependencies.
Start postgresql service and connect to the database using default `postgres` user:
After successful setup, database will contain two databases: `default` and `test`,
You can access them using `twenty` postgres user (password: `twenty`)
```bash
sudo service postgresql start
sudo -u postgres psql
```
Create two databases:
```sql
CREATE DATABASE "default";
CREATE DATABASE "test";
```
Create a user `twenty` with password `twenty`:
```sql
CREATE USER twenty PASSWORD 'twenty';
ALTER USER twenty CREATEDB;
```
Create `metadata` schema:
```sql
CREATE SCHEMA IF NOT EXISTS "metadata";
GRANT ALL ON SCHEMA metadata TO twenty;
```
Activate `uuid-ossp` extension:
```sql
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
```
</TabItem>
</Tabs>
### 4. Setup env variables
## Step #3: Setup env variables
Twenty requires a few environment variables to be set. Locally, we recommend setting them through a `.env` file.
@ -83,11 +118,11 @@ cp ./front/.env.example ./front/.env
cp ./server/.env.example ./server/.env
```
### 5. Server setup
## Step #4: Server setup
**Note:** we recommend that you use `nvm` to install the correct `node` version. We have added a `server/.nvmrc` to ensure all contributors are using the same version.
**Note:** We recommend that you use `nvm` to install the correct `node` version. We have added a `server/.nvmrc` to ensure all contributors are using the same version.
To build Twenty server and seed some data into your database:
To build Twenty server and seed some data into your database, run the following commands:
```bash
cd server
nvm install #recommended
@ -97,11 +132,12 @@ yarn prisma:reset
yarn start:dev
```
Twenty server will be running at [http://localhost:3000](http://localhost:3000).
Twenty's server will be up and running at [http://localhost:3000](http://localhost:3000).
### 6. Frontend setup
## Step #5: Frontend setup
**Note:** similarly, we recommend that you use `nvm` to install the right node version.
**Note:** For the frontend setup, too, we recommend using `nvm` to install the right node version.
To set up the frontend, run the following commands in your terminal:
```bash
cd ../front
@ -111,31 +147,31 @@ yarn
yarn start
```
Twenty front will be running at [http://localhost:3001](http://localhost:3001).
Twenty's frontend will be running at [http://localhost:3001](http://localhost:3001). Simply login using our seeded demo account: `tim@apple.dev` to start using Twenty.
### 7. Sign in to your local Twenty installation
---
Open [http://localhost:3001](http://localhost:3001) in your web browser. You can login using our seeded demo account: `tim@apple.dev`.
## Docker install
# Docker Installation
You can also provision the project with Docker. This comes with a few advantages:
- It provides the exact same environment as our core developer team.
- It includes some additional dependencies (such as `playwright`) that you might need if you wish to contribute to some advanced areas of the project.
- It provisions a PostgreSQL database.
### 1. Pre-requisites
## Prerequisites
Make sure you have the latest `Docker` and [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) versions installed on your computer.
You can run `docker --version` to verify the installation.
### 2. Git clone
## Step #1: Git Clone
In your terminal, run the following command:
```bash
git clone git@github.com:twentyhq/twenty.git
```
### 3. Setup env variables
## Step #2: Setup env variables
Twenty requires a few environment variables to be set. Locally, we recommend setting them through `.env` files.
@ -153,18 +189,18 @@ PG_DATABASE_URL=postgres://twenty:twenty@postgres:5432/default?connection_limit=
```
### 4. Build
## Step #3: Build
We provide an environment containerized with Docker and orchestrated with `docker-compose`.
This installation method will also provision a PostgreSQL container.
**Note:** the configuration for the build is stored in the `infra/dev` folder, but you can run `make` commands directly from the root folder.
**Note:** The configuration for the build is stored in the `infra/dev` folder, but you can run `make` commands directly from the root folder.
```bash
make build
```
### 5. Migrate & seed
## Step #4: Migrate & seed
Before running the project, you need to initialize the database by running the migrations and seed.
@ -178,9 +214,9 @@ Run database migrations, generate prisma client, and seed:
make server-prisma-reset
```
### 6. Start Twenty
## Step #5: Start Twenty
Run the project with the following commands from `root folder`:
Run the project with the following commands from the `root folder`:
```bash
make server-start
@ -191,15 +227,13 @@ make front-start
```
You should now have:
- **front** available on: [http://localhost:3001](http://localhost:3001)
- **server** available on: [http://localhost:3000/graphql](http://localhost:3000/graphql)
- **postgres** available on [http://localhost:5432](http://localhost:5432) and containing database named `default`
- **Frontend** available on: [http://localhost:3001](http://localhost:3001)
- **Server** available on: [http://localhost:3000/graphql](http://localhost:3000/graphql)
- **Postgres** available on [http://localhost:5432](http://localhost:5432) and containing database named `default`
### 7. Sign in to your local Twenty installation
Sign in using our seeded demo account `tim@apple.dev` (password: `Applecar2025`) to start using Twenty
Open [http://localhost:3001](http://localhost:3001) and sign in using our seeded demo account `tim@apple.dev` (password: `Applecar2025`)
### 8. (Optional)
### Optional
If you don't want to use the `make` command and work directly from the container, you can also ssh directly into the container:

View File

@ -1,4 +1,4 @@
{
"label": "Self-Hosting",
"position": 3
"position": 2
}

View File

@ -11,7 +11,7 @@ Refer to this list to see what future options will be available.
## Production docker containers
We provide a production-ready set of `Dockerfile`s to allow you to build your own image and deploy it to your favorite cloud provider (Amazon Web Services, Google Cloud Platform, etc.).
We provide a production-ready set of `Dockerfiles` to allow you to build your own image and deploy it to your favorite cloud provider (Amazon Web Services, Google Cloud Platform, etc.).
You will find these in the [infra/prod/front/Dockerfile](https://github.com/twentyhq/twenty/blob/main/infra/prod/front/Dockerfile) and [infra/prod/server/Dockerfile](https://github.com/twentyhq/twenty/blob/main/infra/prod/server/Dockerfile) files.

View File

@ -1,14 +1,14 @@
---
id: homepage
sidebar_position: 0
hide_title: true
sidebar_class_name: display-none
title: Welcome
custom_edit_url: null
---
import ThemedImage from '@theme/ThemedImage';
# Introduction
Twenty is an Open Source CRM.
<ThemedImage sources={{light: "./img/light-doc-preview.png", dark:"./img/dark-doc-preview.png"}} style={{width:'100%', maxWidth:'800px'}}/>

View File

@ -1,12 +1,15 @@
---
title: Getting Started
sidebar_position: 1
sidebar_custom_props:
icon: TbBolt
icon: TbRocket
---
import ThemedImage from '@theme/ThemedImage';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Getting Started
## Trying Twenty
There are three ways for you to get started with Twenty:
### 1. Cloud
The easiest way to quickly try the app is to signup on [app.twenty.com](https://app.twenty.com).
@ -14,6 +17,13 @@ The signup is free.
<ThemedImage sources={{light: "/img/light-sign-in.png", dark:"/img/dark-sign-in.png"}} style={{width:'100%', maxWidth:'800px'}}/>
## Developer documentation
### 2. Local
If you're a developer and would like to experiment or contribute to the app, you can install Twenty on your local environment. Follow our [local setup](/developer/local-setup) guide to get started.
### 3. Self-hosting
We provide self-hosting options if you want greater control over your data and want to run the app on your own server. Right now, Docker containers are the only hosting option we support. However we are actively working on providing simple options to self-host Twenty.
___
If you are looking to install the project locally, either to try it or to contribute, check out our [developer guide](/developer/local-setup).

View File

@ -0,0 +1,26 @@
---
title: Overview
sidebar_position: 0
sidebar_custom_props:
icon: TbBolt
---
import ThemedImage from '@theme/ThemedImage';
Twenty is an Open Source CRM that provides flexibility, tailored to your business needs. It helps you break free from vendor lock-in and limitations, and provides the tools needed to harness the full potential of your data while ensuring a sleek and effortlessly intuitive design that teams will love to use.
<ThemedImage sources={{light: "../img/light-doc-preview.png", dark:"./img/dark-doc-preview.png"}} style={{width:'100%', maxWidth:'800px'}}/>
___
## Why did we create Twenty?
Weve spent thousands of hours grappling with traditional CRMs/platforms like Pipedrive and Salesforce to align them with our business needs, only to end up frustrated—customizations are complex and the closed ecosystems of these platforms can feel restrictive.
We felt the need for a CRM solution that empowers rather than constrains, which inspired us to create Twenty. Were building the next-generation open-source CRM that offers you the flexibility to shape it according to your business objectives and meet your teams unique needs. Weve packed Twenty with powerful features to give you full control and help you win more deals.
___
## Contributing
Contributions are what makes the open source community such an amazing place.
Code contributions through pull request are most welcome. See our [local setup guide](../developer/local-setup) to get started.
You can also contribute by creating an issue to report a bug you've spotted, joining our discussions or writing documentation.

View File

@ -42,7 +42,7 @@ const config = {
sidebarPath: require.resolve('./sidebars.js'),
sidebarCollapsible: false,
routeBasePath: '/',
editUrl: 'https://github.com/twentyhq/twenty/edit/main/docs/docs/',
editUrl: 'https://github.com/twentyhq/twenty/edit/main/docs/',
},
blog: false,
theme: {

13607
docs/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -25,4 +25,6 @@ export {
TbTopologyStar,
TbVocabulary,
TbZoomQuestion,
} from "react-icons/tb";
TbRocket
} from "react-icons/tb";

BIN
docs/static/img/create-tasks-dark.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 KiB

BIN
docs/static/img/create-tasks-light.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 899 KiB

File diff suppressed because it is too large Load Diff