test 2
Tracim is a collaborative platform software intended for (not only technical) team collaboration. It is simple to use, offers a user-friendly interface and runs on every computer. It is very valuable for R&D teams, assocations, remote collaboration.
More information on the website: https://www.tracim.fr (in French)
Test Tracim on your computer with Docker:
mkdir -p ~/tracim/etc
mkdir -p ~/tracim/var
docker run -e DATABASE_TYPE=sqlite -p 8080:80 -v ~/tracim/etc:/etc/tracim -v ~/tracim/var:/var/tracim algoo/tracim
Then visit http://localhost:8080 and log in:
- email:
admin@admin.admin
- password:
admin@admin.admin
For advanced docker-based usage, look at the full Tracim Docker documentation,
Tracim is distributed under the terms of 3 distinct licenses:
- AGPLv3 for the Agenda application (
frontend_app_agenda
folder) - LGPL for other frontend parts (
frontend
andfrontend_xxx
folders) - MIT License for the rest (backend stuff, functionnal tests, docker recipe, documentation, etc).
In order to contribute to the Tracim source code, please read CONTRIBUTING.md file
OS compatibility (tested with Python >= 3.5.2):
- Debian:
- Jessie (8)
- Stretch (9)
- Buster (10)
- Ubuntu:
- Trusty (14.04) - need manual modification to install Tracim, see tracim#2514
- Xenia (16.04)
- Bionic (18.04)
Get the source code from GitHub (you need git):
git clone https://github.com/tracim/tracim.git
cd tracim/
See the Backend README.
This script runs the backend with a simple default configuration: development.ini conf file. It uses the default config file, sqlite database, etc.
./setup_default_backend.sh
This script uses sudo. Make sure it is installed and configured. Alternatively, under root:
./setup_default_backend.sh root
For each missing configuration file, this script will generate them from the default configuration. If the default SQLite database is missing, the script will generate it. This script may also be used for updates. To update a script generated by the Tracim installation, update the source code with git pull and rerun the same script to update the database model, the system and Python dependencies.
For more information about configuring the backend, see Backend README. For more information about the configuration files, see development.ini.sample and the backend setting documentation.
./install_frontend_dependencies.sh
./build_full_frontend.sh
This script uses sudo. Make sure it is installed and configured. Alternatively, under root:
./install_frontend_dependencies.sh root
You can add "-d" to build_full_frontend.sh to disable obfuscation and reduce build time.
Tracim relies on pushpin for UI updates, so you need to setup pushpin.
If you are in development environnement, the recommended way is to use docker, you should follow this documentation : Live message setup for dev env
You should install pushpin, for example in debian/ubuntu:
sudo apt install pushpin
and configure it to proxy tracim (by default tracim web run on port 6543):
echo "* localhost:6543" | sudo tee /etc/pushpin/routes
and after this change you need to restart your pushpin service:
sudo systemctl restart pushpin
more info about installation are available in Backend README.
Tracim is composed of multiples services, some are web wsgi applications and others are daemons (servers not web-related to do some task like sending email).
An easy way to run Tracim WSGI apps with pastedeploy (config in development.ini):
cd backend/
source env/bin/activate
# running web server
pserve development.ini
You can run some other WSGI services with pastedeploy using the tracimcli
command:
# running webdav server
tracimcli webdav start
# running caldav server
tracimcli caldav start
tracimcli caldav sync # sync Tracim data with radicale caldav server
You can run some Tracim daemons too if you want those features:
# set tracim_conf_file path
export TRACIM_CONF_PATH="$(pwd)/development.ini"
## DAEMONS SERVICES
# email notifier (if async email notification is enabled)
python3 daemons/mail_notifier.py &
# email fetcher (if email reply is enabled)
python3 daemons/mail_fetcher.py &
You can now head to (if pushpin is correctly configured and use default port 7999) http://127.0.0.1:7999 and login with the admin account:
- user:
admin@admin.admin
- password:
admin@admin.admin
Full documentation about running Tracim services with uWSGI and supervisor
is available in the Backend README, sections Running Tracim Backend Daemon
and Running Tracim Backend WSGI APP
.
This script installs some system dependencies of Cypress and checks whether files package.json and cypress.json exist in 'functionnal_tests' folder. If not, the script installs the necessary files.
./setup_functionnal_tests.sh
This script uses sudo, make sure it is installed and configured. Alternatively, under root:
./setup_functionnal_tests.sh root
If you need to run Cypress with an external server of Tracim, modify "baseurl" in cypress.json (for more details, see: https://docs.cypress.io/guides/references/configuration.html#Options ).
⚠ To run Cypress tests, you need to run Tracim with a specific configuration:
cd backend/
source env/bin/activate
pserve cypress_test.ini
You must change the apiUrl property in frontend/configEnv.json
to:
http://localhost:1337/api
Then rebuild the frontend:
cd frontend/
yarn run build
To runs all the tests in the 'functionnal_tests/cypress/integration' folder:
cd functionnal_tests/
yarn run cypress-run
You can watch the tests running directly from a (graphical) web interface:
cd functionnal_tests/
yarn run cypress-open
To run unit tests, you need to install frontend dependencies and build the full frontend:
./install_frontend_dependencies.sh
./build_full_frontend.sh
This first script uses sudo, make sure it is installed and configured. Alternatively, under root:
./install_frontend_dependencies.sh root
To run all the unit tests:
./run_frontend_unit_test.sh
To run the unit tests of a specific frontend app or of frontend_lib:
cd frontend_app_file # (or any frontend app)
yarn run test
Note: to retrieve all frontend apps, run this command:
ls -d frontend*
BrowserStack supports open source projects and graciously helps us testing Tracim on every devices.