Package: novaideo
Nova IdeoFeaturesSeenova-ideo.comTranslationsThis product has been translated intoEnglishFrenchContributeIssue Tracker:https://github.com/ecreall/nova-ideo/issuesSource Code:https://github.com/ecreall/nova-ideoLicenseThe project is licensed under the AGPLv3+.Getting Started for developmentwithout dockerTo run in development mode without docker:sudo apt-get install python3 python3-dev libxml2-dev libxslt1-dev \
  libjpeg-dev zlib1g-dev libfreetype6-dev libtiff5-dev libzmq3-dev \
  libyaml-dev git  # this is working on debian jessie and ubuntu xenial
python3 bootstrap.py
mkdir -p var/{filestorage,blobstorage,log}
bin/buildout  # It takes a long time...
bin/runzeo -C etc/zeo.conf  # It starts in foreground, there is no output.  Use Ctrl+C to stop it.
bin/pserve development.ini  # in another terminalThe application is onhttp://localhost:6543I’ll use $DOMAIN forhttp://localhost:6543in the rest of the documentation.To send emails with gmail smtp, you need to uncomment some lines and configure
the mail and password in development.iniwith dockerYou first need to install thedocker engineanddocker-compose.To run in development mode with docker:./run.sh rebuild
./run.shThe app is deployed onhttps://local.ecreall.com:8443(local.ecreall.com resolves to 127.0.0.1 and is necessary for nginx)I’ll use $DOMAIN forhttps://local.ecreall.com:8443in the rest of the documentation.The default configuration indocker-compose-dev.ymlis used to connect
with a postfix via a ssh tunnel like this:ssh -L 172.17.0.1:9025:localhost:25 myserver.example.comTo send emails with gmail smtp instead, you need to configure the MAILER
variables indocker-compose.override.yml, copy the filedocker-compose.override.yml.templtodocker-compose.override.ymland
edit it. This will overrides the configuration indocker-compose-dev.yml.To stop the application, do a Ctrl-c, and to stop the other containers (nginx),
run:./run.sh downAllow your gmail account to be used to send emailsTo allow your gmail account to be used to send emails, you need to enableless secure appsand
do thecaptcha.
Look at the logs in the terminal if you have an error when sending a mail.Be careful to not commit your gmail password!
The ini file doesn’t support the use of % character in your password.
It thinks it’s the beginning of a variable.
If you use this character in your password, you will need to change it!How to assign roles to a personIf you want to give a person some additional roles, you need to have theAdministratororSite administratorrole. The first time, you will need to
do it with the special super administrator account.
Go to $DOMAIN/manage (there is no accessible link from the home page)
and authenticate with login admin and the password
you have in SECRET environment variable
(It’s substanced.initial_password key in development.ini if you use the
install without docker).
Return to $DOMAIN and go the hamburger menu on the top left, select
See/Members, go to a person’s profile, click onAssign
rolesbutton and give her theSite administrator,ExaminerorModeratorrole.Deployment with dockerClone a specific version:git clone -b VERSION git@github.com:ecreall/nova-ideo.git
cd nova-ideo(replace VERSION with the latest release, 1.2 for example)docker-compose runs a nginx container on port 80 and 443.
You need to edit thenginx-app-prod.conffile to replace mynovaideo.example.com
by your domain and add certificates (server.keyandserver.crt) to thetlsdirectory.Be sure that indocker-compose.ymlit uses the correct version
ecreall/novaideo:release-VERSION. Edit it if it’s not the case.You need to configure some environment variables, copy the filedocker-compose.override.yml.templtodocker-compose.override.ymland edit it.SECRET: the initial admin passwordAPPLICATION_URL: your domain, same as you put in nginx-app-prod.confMAIL_DEFAULT_SENDER: the sender of the mails that the application useMAILER_HOST: SMTP hostMAILER_PORT: SMTP portMAILER_USERNAME: SMTP usernameMAILER_PASSWORD: SMTP passwordMAILER_TLS: Use TLSMAILER_SSL: Use SSLLOGO_FILENAME: empty by default to use the Nova-Ideo logo. You can
set the variable to ‘marianne.svg’ or other images included in the
novaideo/static/images/ directory to configure the logo when the application
is created.If you want to connect to a postfix container, there is a commented example
indocker-compose.override.yml.templthat use an external postfix container
connected on a mybridge bridge network. You need to create a mybridge bridge
network and start a postfix container yourself. (not documented here)To deploy:sudo docker-compose up -dTo connect with the super administrator (for the evolve steps and to create
an other admin account only), go tohttps://mynovaideo.example.com/manageand log in with “admin” and the password is the one you gave in the SECRET
environment variable.After the initial connection, you can increase the number of workers that are
used to handle the requests indocker-compose.override.ymland run againsudo docker-compose up -d(WORKERS=3 is a good default).To see the logs:docker-compose logs -fHow to upgrade your installFor each release, a docker image is built and thedocker-compose.ymlis
modified accordingly.If you previously cloned the repository with version 1.1, to upgrade to 1.2 for
example, do:git checkout 1.2
sudo docker-compose up -dAfter that, be sure to execute the evolve steps by connecting with the super
administrator athttps://mynovaideo.example.com/manageand going toDatabasetab, and click onEvolvered button. You can see
the evolve steps with theSummarizebutton.Backup and maintainance of your databaseYour data is in the var folder, be sure to backup it.The database is a ZODB filestorage, you should pack it regularly (every week)
to reduce its size. Example of cron for user root run at 1am sunday:0 1 * * 0 docker exec novaideo_novaideo_1 /app/bin/zeopack -d 1 -u /app/var/zeo.sockBe sure that the container name is novaideo_novaideo_1 in your case. You can
verify it withdocker ps.Changelog1.3 (2017-02-25)When anonymous, use the browser language for the language of the user
interface.Add Challenges feature.Add Questions feature.1.2 (2017-01-06)Remove runtime pyramid_robot dependency, this avoid a dependency on
robotsuite that depends on lxml. Add optional lxml dependency in
buildout:eggs1.1 (2016-09-15)Improved ergonomics and fix some issues.1.0 (2016-06-28)Initial version