0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-06 06:18:32 -05:00

📚 Clean readme from obsolete doc.

This commit is contained in:
Andrey Antukh 2020-03-08 13:41:23 +01:00
parent 0f5f2a1715
commit 11b6261611
3 changed files with 61 additions and 202 deletions

202
README.md
View file

@ -4,7 +4,7 @@
[![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")
[![Build Status](https://travis-ci.org/uxbox/uxbox.svg)](https://travis-ci.org/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.
## 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 ##
**Open to you!**

View file

@ -1,4 +1,32 @@
# Backend Guide #
# Backend Developer Guide #
This guide intends to explain the essential details of the backend
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.

View file

@ -3,6 +3,37 @@
**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 ##
This is the way we can preload default collections of images and icons to the