TGViewer
.рубик .рубик @dotrubic · 862 subscribers
Post #117 590

Forwarded from Rubikoid

По теме поднятия цтфд.

Это по большей части относится к версии либо 2.2.0, 2.1.5, либо что там было в мастере примерно на время декабря, я уже если честно не помню.

Момент 0: не раздавать статику питоном, т.е. использовать нжинкс, апач или что вашей душе угодно). Питон под напором желающих получить статику помирает и уходит в мир иной.

Момент 0.5: не стоит использовать дев-сервер фласка, а какой-нибудь wsgi-сервак, типа gunicorn или uwsgi. Опять же, дев-сервак - такая себе вещь в плане производительности. Про отключение дебагрежимов, дебаглогов и всего этого даже не говорю.

Мы юзали gunicorn, примерно так, gunicorn --log-level=warn --bind=unix:/tmp/.sock_openkksctf -w 4 "CTFd:create_app()" -t 4 -D --access-logfile ./access.log --error-logfile ./error.log, -w и -t - параметры, отвечающие за число воркеров и тредов в этих воркерах, подбирай исходя из мощности сервака (число логических ядер).
Ну и в нжинксе просто proxy_pass, гайдов, как это сделать - море, в том числе на вики ctfd.

Момент первый: Вот тут лежит файлик, отвечающий за рассылку ивентов. Это одна из фичей цтфд, однако зачастую она никому нафиг не сдалась.
Плюс она генерит зависшие TCP-стримы, которые кладут сервак.
Я отключал тупо вырезанием кода, но вот судя по гитхабу в 2.3.0 добавили возможность вырубить это через конфиг.

Плюс, если используешь SQLite (я её в больших проектах не люблю, но есть люди, умеющие ей хорошо делать), надо правильно настраивать, чтобы она в диск не упиралась. Я просто поставил постгрес и не парился, он отрабатывает достаточно хорошо.
GitHub CTFd/__init__.py at master · CTFd/CTFd CTFs as you need them. Contribute to CTFd/CTFd development by creating an account on GitHub.
More from @dotrubic
  1. Aug 26, 2026Поучаствовал в этом году в составлении хак-квеста для проходки на ZeroNights) Залетайте по…
  2. Jul 14, 2026Your friendly telegram changelog here! Дуров опять придумал всратую херню! Повод выйти из…
  3. Nov 27, 2024У меня тут произошел инцидент: какой-то хмырь скопировал мой профиль и стучался к людям в…
  4. Oct 18, 2024В конце августа мы сделали силами нашей команды CTF для Островка!, а потом вместе с @greg0…
  5. Jul 9, 2024Тут на гитхабе разворачивается очередная дРаМа. Если вкратце: есть в экосистеме питона так…
  6. Jul 7, 2024Сидел я сегодня такой, развлекался с Nix'ом и внезапно обнаружил, что конструкции вида nix…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →