-
Notifications
You must be signed in to change notification settings - Fork 73
Installation
Guide này hướng dẫn cài OJ trên hệ điều hành Linux. Nếu cần cài đặt trên hệ điều hành Windows, hãy sử dụng WSL, Virtual Machine hoặc Docker.
(Sử dụng sudo nếu cần thiết)
$ apt update
$ apt install git gcc g++ make python3-dev python3-pip libxml2-dev libxslt1-dev zlib1g-dev gettext curl redis-server
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ apt install nodejs
$ npm install -g sass postcss-cli postcss autoprefixer
Tại đây chúng ta sẽ dùng MariaDB. OJ hiện tại mới chỉ được test dùng MySQL và không đảm bảo hoạt động với các loại db khác. Hãy truy cập trang web của MariaDB và làm theo hướng dẫn, hoặc dùng các lệnh sau:
(Sử dụng sudo nếu cần thiết)
$ apt update
$ apt install mariadb-server libmysqlclient-dev
Sau đó bạn sẽ phải tạo mật khẩu cho MariaDB.
(Note: Có thể dùng sudo để bypass mật khẩu MariaDB)
Tiếp thep, chúng ta sẽ setup database. Ta sẽ dùng password vừa được set ở bước trước.
(Sử dụng sudo nếu cần thiết)
$ mysql -uroot -p
mariadb> CREATE DATABASE dmoj DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
mariadb> GRANT ALL PRIVILEGES ON dmoj.* to 'dmoj'@'localhost' IDENTIFIED BY '<password>';
mariadb> exit
Bước đầu tiên cần phải làm là tạo một virtual environment cho OJ. Trong guide này, ta sẽ sử dụng venv
để quản lý môi trường.
Ta sẽ tạo một virtual environment tên là vnojsite
(tên không quan trọng), và sử dụng nó:
$ python3 -m venv vnojsite
$ . vnojsite/bin/activate
Sau đoạn lệnh trên, sẽ có một xâu (vnojsite)
được thêm vào shell.
Tiếp theo, chúng ta sẽ fetch code.
(vnojsite) $ git clone https://github.com/VNOI-Admin/OJ.git (vnojsite) $ cd site (vnojsite) $ git checkout v2.1.0 # only if planning to install a judge from PyPI, otherwise skip this step (vnojsite) $ git submodule init (vnojsite) $ git submodule update
Check out the install documentation at docs.dmoj.ca. Almost all installation steps are the same as the docs, there is one minor change: clone this repo instead of dmoj repo.
- You have to define
DMOJ_PROBLEM_DATA_ROOT
inlocal_settings.py
, this is path to your problems tests folder. - Define
DISCORD_WEBHOOK
(the URL of your webhook),SITE_FULL_URL
(The url of your site.) inlocal_settings.py
if you want notification on discord if there is a new comment or a new ticket on the site. #85 - Considering disabling the Full-text search, please check this issue for more information.
- To sync the caching of judge server and site, change cache framework (
CACHES
) tomemcached
orredis
instead of the default (local-memory caching). - The "home button" the admin dashboard (/admin) will redirect to
localhost:8081
if you usepython3 manage.py loaddata demo
, there are 2 ways to fix it:- You can change that in demo.json
- You can go to the admin page, scroll down to find the
Sites
settings, and changelocalhost:8081
to your domain.