diff --git a/code/utils/deploy-pokedex.js b/code/utils/deploy-pokedex.js index ee5ce21..500133f 100644 --- a/code/utils/deploy-pokedex.js +++ b/code/utils/deploy-pokedex.js @@ -361,11 +361,60 @@ async function deploy() { } console.log(` ✅ Transferred ${transferred} files from dist/`); + // Transfer backend server files + console.log(' 📦 Transferring backend server files...'); + const serverDir = path.join(SOURCE_DIR, 'server'); + await ssh.execCommand(`mkdir -p ${REMOTE_PATH}/server`); + + // Transfer server package files + const serverFiles = [ + 'package.json', + 'oauth-proxy.js', + 'gamemaster-api.js', + '.env.example' + ]; + + for (const file of serverFiles) { + const localPath = path.join(serverDir, file); + const remotePath = `${REMOTE_PATH}/server/${file}`; + if (fs.existsSync(localPath)) { + await ssh.putFile(localPath, remotePath); + console.log(` ✅ server/${file}`); + } + } + + // Transfer server subdirectories + const serverDirs = ['middleware', 'routes', 'utils', 'data']; + for (const dir of serverDirs) { + const localDir = path.join(serverDir, dir); + if (fs.existsSync(localDir)) { + await ssh.execCommand(`mkdir -p ${REMOTE_PATH}/server/${dir}`); + const files = fs.readdirSync(localDir, { withFileTypes: true }); + for (const file of files) { + if (file.isFile()) { + const localFile = path.join(localDir, file.name); + const remoteFile = `${REMOTE_PATH}/server/${dir}/${file.name}`; + await ssh.putFile(localFile, remoteFile); + } + } + console.log(` ✅ server/${dir}/ (${files.length} files)`); + } + } + console.log(` ✅ Backend files transferred`); + // Now transfer config files const filesToTransfer = [ { - local: path.join(SOURCE_DIR, 'Dockerfile'), - remote: `${REMOTE_PATH}/Dockerfile` + local: path.join(SOURCE_DIR, 'Dockerfile.frontend'), + remote: `${REMOTE_PATH}/Dockerfile.frontend` + }, + { + local: path.join(SOURCE_DIR, 'server', 'Dockerfile'), + remote: `${REMOTE_PATH}/server/Dockerfile` + }, + { + local: path.join(SOURCE_DIR, 'nginx.conf'), + remote: `${REMOTE_PATH}/nginx.conf` }, { local: tempDockerComposePath,