Next generation of Vijos, built with asyncio on Python 3.5.
- Python 3.5+ and its header files
- MongoDB 3.0+
- Node.js 0.11+ from official repo or manual install
- RabbitMQ
In the root of the repository, where requirements.txt
and package.json
locates:
python3.5 -m pip install -r requirements.txt
npm install # cnpm install
You don't need root privilege to run npm install
. It installs stuffs in the project directory.
You may want to use cnpm and tuna
if you are in China. Make sure to use cnpm
by adding alias
to npm
instead of installing cnpm cli-tool.
To enable IP geo-location translation, you need to obtain a MaxMind GeoLite City DB and put it in the project root directory:
curl "http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz" | gunzip -c > GeoLite2-City.mmdb
You may also want to install libmaxminddb for higher performance.
In the root of the repository:
npm run generate:icon
npm run generate:constant
npm run generate:locale
npm run build # to watch modifications: npm run watch
python3.5 -m vj4.server --debug
- Set
--listen
(default: http://127.0.0.1:8888) to listen on a different address.
As an intuitive example, you may want to add a first user and problem to start:
alias pm="python3.5 -m"
pm vj4.model.user add -1 icebox 12345 icebox@iceboy.org
pm vj4.model.adaptor.problem add system "Dummy Problem" "# It *works*" -1 777
You need to run rank script on a regular basis to maintain correct ranks for all users:
pm vj4.job.rank rank
npm run generate:icon
npm run generate:constant
- Restart server
npm run generate:locale
- Restart server
npm run generate:icon
npm run generate:constant
npm run generate:locale
npm run build:production
python3.5 -OO -m vj4.server --listen=unix:/var/run/vj4.sock
- Set
--listen
(default: http://127.0.0.1:8888) to listen on a different address. - Set
--prefork
(default: 1) to specify the number of worker processes. - Set
--ip-header
(default: X-Forwarded-For) to use IP address in request headers. - Set
--url-prefix
(default: https://vijos.org) to set URL prefix. - Set
--cdn-prefix
(default: /) to set CDN prefix. - Set
--smtp-host
,--smtp-user
and--smtp-password
to specify a SMTP server. - Set
--db-host
(default: localhost) and/or--db-name
(default: test) to use a different database.
Have fun!
Maximum line width: 100
Indentation: 2 spaces