mirror of
https://github.com/penpot/penpot.git
synced 2025-02-11 09:38:56 -05:00
📚 Clean readme from obsolete doc.
This commit is contained in:
parent
0f5f2a1715
commit
11b6261611
3 changed files with 61 additions and 202 deletions
202
README.md
202
README.md
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
[![License: MPL-2.0][uri_license_image]][uri_license]
|
[![License: MPL-2.0][uri_license_image]][uri_license]
|
||||||
[![Managed with Taiga.io](https://img.shields.io/badge/managed%20with-TAIGA.io-709f14.svg)](https://tree.taiga.io/project/uxbox/ "Managed with Taiga.io")
|
[![Managed with Taiga.io](https://img.shields.io/badge/managed%20with-TAIGA.io-709f14.svg)](https://tree.taiga.io/project/uxbox/ "Managed with Taiga.io")
|
||||||
[![Build Status](https://travis-ci.org/uxbox/uxbox.svg)](https://travis-ci.org/uxbox/uxbox)
|
|
||||||
|
|
||||||
# UXBOX #
|
# UXBOX #
|
||||||
|
|
||||||
|
@ -28,206 +28,6 @@ prototypes . This means that all your stuff in UXBOX is portable and
|
||||||
editable in many other vector tools and easy to use on the web.
|
editable in many other vector tools and easy to use on the web.
|
||||||
|
|
||||||
|
|
||||||
## Development ##
|
|
||||||
|
|
||||||
### Introduction ###
|
|
||||||
|
|
||||||
The main development environment consists in a docker compose
|
|
||||||
configuration that starts the external services and the development
|
|
||||||
container (called **devenv**).
|
|
||||||
|
|
||||||
We use tmux script in order to multiplex the signle terminal and run
|
|
||||||
both the backend and frontend in the same container.
|
|
||||||
|
|
||||||
|
|
||||||
### System requirements ###
|
|
||||||
|
|
||||||
You should have `docker` and `docker-compose` installed in your system
|
|
||||||
in order to set up properly the uxbox development enviroment.
|
|
||||||
|
|
||||||
In debian like linux distributions you can install it executing:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt-get install docker docker-compose
|
|
||||||
```
|
|
||||||
|
|
||||||
### Start the devenv ###
|
|
||||||
|
|
||||||
**Requires a minimum knowledge of tmux usage in order to use that
|
|
||||||
development environment.**
|
|
||||||
|
|
||||||
For start it, staying in this repository, execute:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./manage.sh run-devenv
|
|
||||||
```
|
|
||||||
|
|
||||||
This will do the following:
|
|
||||||
|
|
||||||
- Build the images if it is not done before.
|
|
||||||
- Starts all the containers in the background.
|
|
||||||
- Attaches to the **devenv** container and executes the tmux session.
|
|
||||||
|
|
||||||
|
|
||||||
### First steps with tmux ###
|
|
||||||
|
|
||||||
Now having the the container running and tmux open inside the
|
|
||||||
container, you are free to execute any commands and open many shells
|
|
||||||
as you want.
|
|
||||||
|
|
||||||
You can create a new shell just pressing the **Ctr+b c** shortcut. And
|
|
||||||
**Ctrl+b w** for switch between windows, **Ctrl+b &** for kill the
|
|
||||||
current window.
|
|
||||||
|
|
||||||
|
|
||||||
### Inside the tmux session ###
|
|
||||||
|
|
||||||
#### UI ####
|
|
||||||
|
|
||||||
The UI related tasks starts automatically so you do not need do
|
|
||||||
anything. The **window 0** and **window 1** are used for the UI
|
|
||||||
related environment.
|
|
||||||
|
|
||||||
|
|
||||||
#### Backend ####
|
|
||||||
|
|
||||||
The backend related environment is located in the **window 2**, and
|
|
||||||
you can go directly to it using `ctrl+b 2` shortcut.
|
|
||||||
|
|
||||||
By default the clojure repl will be executed, waiting you to run
|
|
||||||
commands or start the http server.
|
|
||||||
|
|
||||||
Then use `(start)` to start all the environment, `(stop)` for stoping
|
|
||||||
it and `(reset)` for restart with code reloading. If some exception is
|
|
||||||
raised when code is reloaded, just use `(repl/refresh)` in order to finish
|
|
||||||
correctly the code swaping and later use `(reset)` again.
|
|
||||||
|
|
||||||
If this is your first run, you maybe want to load fixtures first. Then
|
|
||||||
you can done this in two ways:
|
|
||||||
|
|
||||||
- In the same repl, require the `uxbox.fixtures` namespace and execute
|
|
||||||
`(uxbox.fixtures/-main [])`.
|
|
||||||
- Stop the repl with `Ctrl+c` and then execute `clojure -Adev -m
|
|
||||||
uxbox.fixtures`; then start the repl again with `clojure -Adev:repl`.
|
|
||||||
|
|
||||||
|
|
||||||
## Production (Docker)
|
|
||||||
|
|
||||||
Docker is also used to build release images for backend and
|
|
||||||
frontend. Use the helper script `manage.sh` to build the images. You
|
|
||||||
can run locally UXBOX through a docker-compose or by manually running
|
|
||||||
the containers.
|
|
||||||
|
|
||||||
Complementary to the docker images you can build locally from this
|
|
||||||
repository, you can find additionnal flavors for backend and frontend
|
|
||||||
on external repositories:
|
|
||||||
* [Monogramm/docker-uxbox-frontend](https://github.com/Monogramm/docker-uxbox-frontend)
|
|
||||||
* [Monogramm/docker-uxbox-backend](https://github.com/Monogramm/docker-uxbox-backend)
|
|
||||||
|
|
||||||
|
|
||||||
### Persistent data
|
|
||||||
|
|
||||||
The UXBOX installation and all data are stored in the database (file
|
|
||||||
uploads, etc). The docker daemon will store that data within the
|
|
||||||
docker directory `/var/lib/docker/volumes/...`. That means your data
|
|
||||||
is saved even if the container crashes, is stopped or deleted.
|
|
||||||
|
|
||||||
The default production docker-compose already handles it for you,
|
|
||||||
but if you. So check the `docker/docker-compose.yml` file.
|
|
||||||
|
|
||||||
|
|
||||||
### Configuration via environment variables
|
|
||||||
|
|
||||||
The following environment variables are also honored for configuring
|
|
||||||
your UXBOX instance:
|
|
||||||
|
|
||||||
|
|
||||||
#### Frontend
|
|
||||||
|
|
||||||
**Only available at build time!**
|
|
||||||
- `-e UXBOX_API_URL=...` (defaults to `/api`)
|
|
||||||
- `-e UXBOX_VIEW_URL=...` (defaults to `/view/`)
|
|
||||||
- `-e UXBOX_DEMO_WARNING=...` (not defined, setting any value will activate demo mode)
|
|
||||||
|
|
||||||
Available at runtime:
|
|
||||||
- `-e LANG=...` (defaults to `en_US.UTF-8`)
|
|
||||||
- `-e LC_ALL=...` (defaults to `C.UTF-8`)
|
|
||||||
|
|
||||||
#### Backend
|
|
||||||
|
|
||||||
Available at runtime:
|
|
||||||
- `-e LANG=...` (defaults to `en_US.UTF-8`)
|
|
||||||
- `-e LC_ALL=...` (defaults to `C.UTF-8`)
|
|
||||||
- `-e UXBOX_HTTP_SERVER_PORT=...` (defaults to `6060`)
|
|
||||||
- `-e UXBOX_HTTP_SERVER_DEBUG=...` (defaults to `true`)
|
|
||||||
- `-e UXBOX_HTTP_SERVER_CORS=...` (defaults to `http://localhost:3449`)
|
|
||||||
- `-e UXBOX_DATABASE_USERNAME="..."` (defaults to `nil`)
|
|
||||||
- `-e UXBOX_DATABASE_PASSWORD="..."` (defaults to `nil`)
|
|
||||||
- `-e UXBOX_DATABASE_URI="..."` (defaults to ` `, will be computed based on other DATABASE parameters if empty)
|
|
||||||
- `-e UXBOX_DATABASE_NAME="..."` (defaults to `"uxbox"`)
|
|
||||||
- `-e UXBOX_DATABASE_SERVER="..."` (defaults to `"localhost"`)
|
|
||||||
- `-e UXBOX_DATABASE_PORT=...` (defaults to `5432`)
|
|
||||||
- `-e UXBOX_MEDIA_DIRECTORY=...` (defaults to `resources/public/media`)
|
|
||||||
- `-e UXBOX_MEDIA_URI=...` (defaults to `http://localhost:6060/media/`)
|
|
||||||
- `-e UXBOX_ASSETS_DIRECTORY=...` (defaults to `resources/public/static`)
|
|
||||||
- `-e UXBOX_ASSETS_URI=...` (defaults to `http://localhost:6060/static/`)
|
|
||||||
- `-e UXBOX_EMAIL_REPLY_TO="..."` (defaults to `no-reply@uxbox.io`)
|
|
||||||
- `-e UXBOX_EMAIL_FROM="..."` (defaults to `no-reply@uxbox.io`)
|
|
||||||
- `-e UXBOX_SUPPORT_EMAIL="..."` (defaults to `support@uxbox.io`)
|
|
||||||
- `-e UXBOX_SMTP_HOST="..."` (defaults to `"localhost"`)
|
|
||||||
- `-e UXBOX_SMTP_PORT=...` (defaults to `25`)
|
|
||||||
- `-e UXBOX_SMTP_USER="..."` (defaults to `nil`)
|
|
||||||
- `-e UXBOX_SMTP_PASSWORD="..."` (defaults to `nil`)
|
|
||||||
- `-e UXBOX_SMTP_SSL=...` (defaults to `false`)
|
|
||||||
- `-e UXBOX_SMTP_TLS=...` (defaults to `false`)
|
|
||||||
- `-e UXBOX_SMTP_ENABLED=...` (defaults to `false`)
|
|
||||||
- `-e UXBOX_REGISTRATION_ENABLED=...` (defaults to `true`)
|
|
||||||
- `-e UXBOX_SECRET="..."` (defaults to `"5qjiAndGY3"`)
|
|
||||||
|
|
||||||
**Important note:** make sure to use quotation marks for string
|
|
||||||
variables or the backend might try to interpret the values as symbols
|
|
||||||
and have weird issues.
|
|
||||||
|
|
||||||
|
|
||||||
## Collections import
|
|
||||||
|
|
||||||
You can easily import icons and images as global stores with the
|
|
||||||
backend collection importer:
|
|
||||||
|
|
||||||
* Create a `media` folder with the following sample structure:
|
|
||||||
|
|
||||||
```
|
|
||||||
media
|
|
||||||
icons
|
|
||||||
my-icons-collection
|
|
||||||
images
|
|
||||||
my-images-collection
|
|
||||||
```
|
|
||||||
|
|
||||||
* Add some icons (SVG format) and images to your collection
|
|
||||||
* Create a `config.edn` file with the following content
|
|
||||||
|
|
||||||
```clojure
|
|
||||||
{:icons
|
|
||||||
[{:name "Generic Icons 1"
|
|
||||||
:path "./icons/my-icons-collection/"
|
|
||||||
:regex #"^.*_48px\.svg$"}
|
|
||||||
]
|
|
||||||
:images
|
|
||||||
[{:name "Generic Images 1"
|
|
||||||
:path "./images/my-images-collection/"
|
|
||||||
:regex #"^.*\.(png|jpg|webp)$"}]}
|
|
||||||
```
|
|
||||||
|
|
||||||
* Then go to the backend directory and import collections:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
clojure -Adev -m uxbox.cli.collimp ../media/config.edn
|
|
||||||
```
|
|
||||||
|
|
||||||
Take a look at the `sample_media` directory for a sample configuration.
|
|
||||||
|
|
||||||
|
|
||||||
## Contributing ##
|
## Contributing ##
|
||||||
|
|
||||||
**Open to you!**
|
**Open to you!**
|
||||||
|
|
|
@ -1,4 +1,32 @@
|
||||||
# Backend Guide #
|
# Backend Developer Guide #
|
||||||
|
|
||||||
This guide intends to explain the essential details of the backend
|
This guide intends to explain the essential details of the backend
|
||||||
application.
|
application.
|
||||||
|
|
||||||
|
|
||||||
|
## Fixtures ##
|
||||||
|
|
||||||
|
This is a development feature that allows populate the database with a
|
||||||
|
good amount of random content (usually used for just test the
|
||||||
|
application or perform performance tweaks on queries).
|
||||||
|
|
||||||
|
|
||||||
|
In order to load fixtures, enter to the REPL environment executing the
|
||||||
|
`bin/repl` script, and then execute `(uxbox.fixtures/-main)`.
|
||||||
|
|
||||||
|
You also can execute this as a standalone script with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
clojure -Adev -m uxbox.fixtures
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: It is an optional step because the application can start with an
|
||||||
|
empty database.
|
||||||
|
|
||||||
|
This by default will create a bunch of users that can be used to login
|
||||||
|
in the aplication. All users uses the following pattern:
|
||||||
|
|
||||||
|
- Username: `profileN.test@uxbox.io`
|
||||||
|
- Password: `123123`
|
||||||
|
|
||||||
|
Where `N` is a number from 0 to 49 on the default fixture parameters.
|
||||||
|
|
|
@ -3,6 +3,37 @@
|
||||||
**TODO**
|
**TODO**
|
||||||
|
|
||||||
|
|
||||||
|
## Backend configuration parameters ##
|
||||||
|
|
||||||
|
Backend accepts a bunch of configuration parameters (detailed abowe),
|
||||||
|
that can be passed in different ways. The preferred one is using
|
||||||
|
environment variables.
|
||||||
|
|
||||||
|
|
||||||
|
A probably incomplete list of available options (with respective defaults):
|
||||||
|
|
||||||
|
- `UXBOX_HTTP_SERVER_PORT=6060`
|
||||||
|
- `UXBOX_HTTP_SERVER_CORS=http://localhost:3449`
|
||||||
|
- `UXBOX_DATABASE_USERNAME=` (not defined, used from uri)
|
||||||
|
- `UXBOX_DATABASE_PASSWORD=` (not defined, used from uri)
|
||||||
|
- `UXBOX_DATABASE_URI=postgresql://127.0.0.1/uxbox`
|
||||||
|
- `UXBOX_MEDIA_DIRECTORY=resources/public/media`
|
||||||
|
- `UXBOX_MEDIA_URI=http://localhost:6060/media/`
|
||||||
|
- `UXBOX_ASSETS_DIRECTORY=resources/public/static`
|
||||||
|
- `UXBOX_ASSETS_URI=ehttp://localhost:6060/static/`
|
||||||
|
- `UXBOX_EMAIL_REPLY_TO=no-reply@nodomain.com`
|
||||||
|
- `UXBOX_EMAIL_FROM=no-reply@nodomain.com`
|
||||||
|
- `UXBOX_SMTP_HOST=` (default undefined)
|
||||||
|
- `UXBOX_SMTP_PORT=` (defaults undefined)
|
||||||
|
- `UXBOX_SMTP_USER=` (defaults undefined)
|
||||||
|
- `UXBOX_SMTP_PASSWORD=` (defaults undefined)
|
||||||
|
- `UXBOX_SMTP_SSL=` (defaults to `false`)
|
||||||
|
- `UXBOX_SMTP_TLS=` (defaults to `false`)
|
||||||
|
- `UXBOX_SMTP_ENABLED=false`
|
||||||
|
- `UXBOX_REGISTRATION_ENABLED=true`
|
||||||
|
- `UXBOX_DEBUG_HUMANIZE_TRANSIT=true`
|
||||||
|
|
||||||
|
|
||||||
## Collections import ##
|
## Collections import ##
|
||||||
|
|
||||||
This is the way we can preload default collections of images and icons to the
|
This is the way we can preload default collections of images and icons to the
|
||||||
|
|
Loading…
Add table
Reference in a new issue