{"id":1346,"date":"2026-02-15T20:14:32","date_gmt":"2026-02-15T20:14:32","guid":{"rendered":"https:\/\/docs.ai.drawconclusions.org\/?page_id=1346"},"modified":"2026-02-24T12:45:57","modified_gmt":"2026-02-24T12:45:57","slug":"server-setup","status":"publish","type":"page","link":"https:\/\/docs.ai.drawconclusions.org\/?page_id=1346","title":{"rendered":"Server Setup"},"content":{"rendered":"<h2>Access<\/h2>\n<ul>\n<li>SSH target comes from <code>server\/var_www\/config.xml<\/code> <code>domains\/droplet_ip<\/code>.<\/li>\n<li>SSH key path comes from <code>server\/var_www\/config.xml<\/code> <code>ssh\/local_key_name<\/code>.<\/li>\n<li>Test access: <code>ssh -i &quot;$HOME\/.ssh\/&lt;local_key_name&gt;&quot; &quot;root@&lt;droplet_ip&gt;&quot; &quot;echo ok&quot;<\/code><\/li>\n<\/ul>\n<h2>Notes<\/h2>\n<ul>\n<li>Droplet name: dracox<\/li>\n<li>IP: from <code>server\/var_www\/config.xml<\/code> <code>domains\/droplet_ip<\/code><\/li>\n<li>Project location: \/var\/www (create if missing)<\/li>\n<li>See <code>docs\/rulebook\/3_Infrastructure\/C_server\/<\/code> for required software and server bootstrap details.<\/li>\n<li>Traefik terminates TLS for all domains and redirects HTTP to HTTPS.<\/li>\n<\/ul>\n<h2>Backend Init Command<\/h2>\n<h2>Command<\/h2>\n<ul>\n<li>One-time backend setup command (run inside the BE container): <code>docker exec BePhp php \/var\/www\/symfony_be\/bin\/init_backend.php<\/code><\/li>\n<li>Uploads directory structure created first: <code>\/var\/www\/symfony_be\/public\/uploads<\/code>, <code>\/var\/www\/symfony_be\/public\/uploads\/avatars<\/code>, <code>\/var\/www\/symfony_be\/public\/uploads\/reports<\/code>, <code>\/var\/www\/symfony_be\/public\/uploads\/attachments<\/code>, <code>\/var\/www\/symfony_be\/public\/uploads\/tmp<\/code><\/li>\n<li>After directory creation, it creates or updates the admin user as the final step.<\/li>\n<li>Admin credentials are read from <code>\/var\/www\/config.xml<\/code> (<code>admin\/email<\/code>, <code>admin\/password<\/code>).<\/li>\n<li>The BE container mounts <code>\/var\/www\/config.xml<\/code> as read-only (see <code>server\/var_www\/docker-compose.yml<\/code>).<\/li>\n<\/ul>\n<p class=\"developerdocs-id-search\" aria-hidden=\"true\">DeveloperDoc ID: dd_id_1fae964625<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Access SSH target comes from server\/var_www\/config.xml domains\/droplet_ip. SSH key path comes from server\/var_www\/config.xml ssh\/local_key_name. Test access: ssh -i &quot;$HOME\/.ssh\/&lt;local_key_name&gt;&quot; &quot;root@&lt;droplet_ip&gt;&quot; &quot;echo ok&quot; Notes Droplet name: dracox IP: from server\/var_www\/config.xml domains\/droplet_ip Project location: \/var\/www (create if missing) See docs\/rulebook\/3_Infrastructure\/C_server\/ for required software and server bootstrap details. Traefik terminates TLS for all domains and redirects HTTP to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1343,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[8],"doc_layer":[31],"class_list":["post-1346","page","type-page","status-publish","hentry","doc_category-server","layer-dd_id_cffc321500"],"_links":{"self":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1346"}],"version-history":[{"count":5,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1346\/revisions"}],"predecessor-version":[{"id":3897,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1346\/revisions\/3897"}],"up":[{"embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1343"}],"wp:attachment":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1346"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_category&post=1346"},{"taxonomy":"doc_layer","embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_layer&post=1346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}