gitextract_upuwzr0s/ ├── .env_example ├── .flake8 ├── .github/ │ └── workflows/ │ └── main.yml ├── .gitignore ├── .pylintrc ├── LICENSE ├── Makefile ├── README.md ├── app/ │ ├── __init__.py │ ├── api/ │ │ ├── __init__.py │ │ ├── admin/ │ │ │ ├── __init__.py │ │ │ ├── ctf.py │ │ │ ├── docker.py │ │ │ ├── schemas/ │ │ │ │ ├── __init__.py │ │ │ │ ├── ctf.py │ │ │ │ └── docker.py │ │ │ ├── system.py │ │ │ └── vulnerability.py │ │ ├── health.py │ │ ├── player/ │ │ │ ├── __init__.py │ │ │ ├── views.py │ │ │ ├── vulnerability.py │ │ │ └── ws.py │ │ └── route.py │ ├── core/ │ │ ├── api.py │ │ ├── command.py │ │ ├── const.py │ │ ├── decorators.py │ │ ├── error_handlers.py │ │ ├── exceptions.py │ │ ├── flask_celery.py │ │ ├── middlewares.py │ │ └── tools.py │ ├── extensions.py │ ├── models/ │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── ctf.py │ │ ├── docker.py │ │ └── user.py │ ├── services/ │ │ ├── __init__.py │ │ ├── docker.py │ │ ├── player.py │ │ └── system.py │ ├── tasks/ │ │ ├── __init__.py │ │ ├── ctf.py │ │ ├── docker.py │ │ ├── player.py │ │ ├── system.py │ │ └── vulnerability.py │ ├── utils/ │ │ ├── security.py │ │ ├── tools.py │ │ └── validator.py │ └── worker.py ├── config/ │ └── config.py ├── docker-compose.yml ├── install/ │ ├── config/ │ │ └── supervisord/ │ │ └── ocean.ini │ ├── db_init/ │ │ └── ocean.sql │ ├── docker/ │ │ ├── ocean_web.Dockerfile │ │ └── wait-for-it.sh │ ├── frontend/ │ │ └── dist/ │ │ ├── assets/ │ │ │ ├── detail-Beu8V9iA.js │ │ │ ├── detail-CwA0i7lp.css │ │ │ ├── index-2Kde3L7C.js │ │ │ ├── index-BNtu7jJ7.js │ │ │ ├── index-CUMyn3nz.js │ │ │ ├── index-Cn092HV2.css │ │ │ ├── index-CocFE3Kg.css │ │ │ ├── index-DAXaKKX5.js │ │ │ ├── index-DSpYhb0F.css │ │ │ ├── index-DTf6UOgP.js │ │ │ ├── index-D_63FOFH.js │ │ │ ├── index-Dst5s0sm.css │ │ │ ├── index-IBfy7H4-.css │ │ │ ├── index-M3X3VVYJ.css │ │ │ ├── index-PyJu_6A4.js │ │ │ ├── index-qmyYS7Pw.css │ │ │ ├── register-C1gwrr0Z.css │ │ │ └── register-CwwKsjmL.js │ │ └── index.html │ ├── manager/ │ │ └── dist/ │ │ ├── index.html │ │ ├── serverConfig.json │ │ ├── static/ │ │ │ ├── css/ │ │ │ │ ├── LineChart-CAiRPB6S.css │ │ │ │ ├── PanelGroup-TcT6nE-z.css │ │ │ │ ├── UserCard-D6QtR3QQ.css │ │ │ │ ├── addImage-qmRBmbjD.css │ │ │ │ ├── answer-C7eDAiIE.css │ │ │ │ ├── config-CZAQQi9l.css │ │ │ │ ├── config-W0rb9i92.css │ │ │ │ ├── container-C6zUPM_j.css │ │ │ │ ├── container-DtRsVCeN.css │ │ │ │ ├── editResources-Df9j_O02.css │ │ │ │ ├── frame-C56j9Uki.css │ │ │ │ ├── host-C9ss6-xf.css │ │ │ │ ├── hostDetail-DJ2SmXrv.css │ │ │ │ ├── imageDetail-LDv3EwHR.css │ │ │ │ ├── images-Tpvwj_u0.css │ │ │ │ ├── index-B2cknHNH.css │ │ │ │ ├── index-B5rb6rib.css │ │ │ │ ├── index-BOEMDA_E.css │ │ │ │ ├── index-BcTahPvV.css │ │ │ │ ├── index-C4pPArRS.css │ │ │ │ ├── index-CQHzbCBB.css │ │ │ │ ├── index-ChP2PXZC.css │ │ │ │ ├── index-DNZyiNmE.css │ │ │ │ ├── index-m7pPGTca.css │ │ │ │ ├── operator-C9HCk2lz.css │ │ │ │ ├── question-qN-CSJNX.css │ │ │ │ ├── questionItem-4bFCFt94.css │ │ │ │ ├── resource-CM1VvOIh.css │ │ │ │ ├── resourceForm-p8bnP91q.css │ │ │ │ ├── resourceItem-DzDzzvBa.css │ │ │ │ ├── resources-BH1s_vA0.css │ │ │ │ ├── resources-Ct3K675F.css │ │ │ │ ├── sysInfo-BohfULNO.css │ │ │ │ └── user-DerJW7Bd.css │ │ │ └── js/ │ │ │ ├── 403-DKEdQNMH.js │ │ │ ├── 404-lPQWHYlH.js │ │ │ ├── 500-Bi6ZUpQv.js │ │ │ ├── Account-Bb8H_MKm.js │ │ │ ├── LineChart-CyBl2sMc.js │ │ │ ├── PanelGroup-QRQhV6r1.js │ │ │ ├── RestPass-mWtPbTNp.js │ │ │ ├── Timeline-CGNLPXAJ.js │ │ │ ├── Todo-B8eVum4J.js │ │ │ ├── UserCard-D9xOWVMi.js │ │ │ ├── addHost-BVYUJp7N.js │ │ │ ├── addImage-Cex8BYxg.js │ │ │ ├── addUser-C2q5OAyK.js │ │ │ ├── admins-BKHsnYfX.js │ │ │ ├── answer-PdY72vFF.js │ │ │ ├── audit-DbCqE0TT.js │ │ │ ├── back_top-B8RoSTAY.js │ │ │ ├── config-BerqnP1C.js │ │ │ ├── config-DU8nLchD.js │ │ │ ├── container--f66ltxq.js │ │ │ ├── container-62xqkrS2.js │ │ │ ├── dark-Dv7Dbtg0.js │ │ │ ├── docker_resource_sync-Dxn6rGPc.js │ │ │ ├── editAdmin-xd3VaCzj.js │ │ │ ├── editResources-jJ-omP3I.js │ │ │ ├── editRole-Dqlx3Hxu.js │ │ │ ├── frame-CRmNRX0K.js │ │ │ ├── hooks-CzcwFjli.js │ │ │ ├── host-g1EgSM4r.js │ │ │ ├── hostDetail-DeVpx4OE.js │ │ │ ├── imageDetail-quKI1yqP.js │ │ │ ├── images-BUkzOY-1.js │ │ │ ├── index-BLCelF29.js │ │ │ ├── index-B_eHX4aD.js │ │ │ ├── index-BqIwwt-c.js │ │ │ ├── index-BzD9KVPC.js │ │ │ ├── index-Cj3Ji7Ce.js │ │ │ ├── index-Cuc6Bha6.js │ │ │ ├── index-D4veOIBM.js │ │ │ ├── index-DGss3hGv.js │ │ │ ├── index-DqeA2Szn.js │ │ │ ├── index-Lj5hgGY3.js │ │ │ ├── index-xEKAsWxN.js │ │ │ ├── notifications-D8ciMJpU.js │ │ │ ├── operator-BiRoUc-y.js │ │ │ ├── question-DPBmlVI1.js │ │ │ ├── questionItem-BnT1RndV.js │ │ │ ├── questionTypeManage-C4aIrDS_.js │ │ │ ├── redirect-BNWD9FK6.js │ │ │ ├── resource-B26noqeQ.js │ │ │ ├── resourceForm-UYjwLmkY.js │ │ │ ├── resourceItem-BIlM6slQ.js │ │ │ ├── resources-D66Xg1B4.js │ │ │ ├── resources-eAiTMxgh.js │ │ │ ├── role-Cj_rRiT0.js │ │ │ ├── runner-C4c3DT0z.js │ │ │ ├── sysInfo-BJzi9t0G.js │ │ │ └── user-BBi65gzK.js │ │ └── version.json │ └── nginx.conf ├── main.py ├── pyproject.toml ├── requirements/ │ ├── base.txt │ ├── dev.txt │ ├── prod.txt │ └── test.txt ├── requirements.txt ├── run.sh ├── tests/ │ ├── conftest.py │ ├── test_docker.py │ ├── test_health_api.py │ ├── test_tasks.py │ └── test_validator.py ├── upload/ │ └── .gitignore └── wsgi.py