Dev PC and Mobile
L'objectif est de tester ton app directement sur ton mobile comme si elle était déployée.
quelques vérifications et configuration sur ubuntu
ip adresses
- Vérifier que ton téléphone et ton PC sont sur le même réseau :
- Connecte ton téléphone et ton PC au même Wi-Fi.
- Vérifie l’adresse IP de ton PC avec :
ip a
→ Regarde l’IP locale (exemple : 192.168.43.162).
problems of firewalls
Gérer les problèmes de firewall
Si tu ne peux pas accéder depuis le téléphone, c’est peut-être qu’Ubuntu bloque les connexions.
Ouvrir uniquement quand tu testes sur mobile
- Avant de tester :
sudo ufw allow 8080
sudo ufw allow 8000
- Avant de tester :
sudo ufw deny 8080
sudo ufw deny 8000
👉 Maintenant, tu pourras tester ton app directement sur ton mobile comme si elle était déployée.
voir ufw --help pour désactiver ces ports ou autres choses.
Si tu es chez toi sur un Wi-Fi privé → risque faible, mais ouvre les ports uniquement pour ton sous-réseau (192.168.43.0/24) au lieu de tout le monde.
Si tu es sur un réseau partagé/public → ne les ouvre pas, passe plutôt par un tunnel (ngrok, localtunnel)
Bonnes pratiques pour limiter les risques
- Restreindre l’accès à ton réseau local seulement
Tu peux préciser une IP ou une plage :
sudo ufw allow from 192.168.43.0/24 to any port 8080
sudo ufw allow from 192.168.43.0/24 to any port 8000
👉 Ici, seules les machines de ton réseau Wi-Fi (192.168.43.x) pourront accéder.
lancer serveur PHP
Si tu utilises le serveur PHP intégré php -S 0.0.0.0:8080 -t public (public étant le dossier où se trouve ton index.php).
Ton backend sera alors dispo sur : http://192.168.43.162:8080/
Ouvre ton navigateur mobile.
Tape l’adresse IP de ton PC avec le bon port :
Backend PHP → http://192.168.43.162:8080/
Lancer ton serveur Vue.js accessible sur le réseau
Par défaut, npm run dev (dev or serve,...) expose ton app seulement sur localhost.
Tu dois le lancer avec l’option --host :
npm run serve -- --host 0.0.0.0
👉 Ça va rendre l’app accessible depuis l’extérieur (même réseau local). Ton terminal affichera une URL du type :
➜ Local: http://localhost:5173/
➜ Network: http://192.168.43.162:5173/
Utilise l’adresse réseau (http://192.168.43.162:5173/) sur ton téléphone.
choix de mode de démarrage de projet
tu peux démarrer ton projet Vue/Vite en choisissant si tu veux l’exposer uniquement sur localhost (pour dev rapide sur PC) ou bien sur ton IP locale (pour tester sur mobile), sans toucher ton code.
Exemple d'usage:
npm run dev→ API sur localhostnpm run dev --mode lan→ API sur IP locale + accessible depuis ton téléphone
Étape 1 : create 2 .env files
Tu peux avoir :
.env.development→ pour bosser tranquille sur ton PC (backend en localhost).env.mobile→ pour tester en temps réel sur ton téléphone (backend en IP locale)
et tu choisis au moment de npm run dev quel mode utiliser.
.env.development
BASE_URL=http://localhost:5173/
VITE_API_URL=http://localhost:8080/api
.env.mobile
BASE_URL=http://192.168.43.162:5173/
VITE_API_URL=http://192.168.43.162:8080/api
Étape 2 : Adapter ton vite.config.js
Ajoute server.host selon le mode :
import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
import vueDevTools from "vite-plugin-vue-devtools";
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), "");
return {
plugins: [vue(), vueDevTools()],
server: {
host: mode === "mobile" ? "0.0.0.0" : "localhost", // 👈
port: 5173,
},
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
},
},
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@/styles/global.scss" as *;`,
includePaths: [path.resolve(__dirname, "src")],
},
},
},
define: {
__API__: JSON.stringify(env.VITE_API_URL),
},
};
});
Étape 3 : Utiliser la variable dans ton code Vue
import axios from "axios";
const api = axios.create({
baseURL: __API__,
});
export default api;
Étape 4 : Ajouter les scripts npm
Dans package.json :
"scripts": {
"dev": "vite --mode development",
"dev:mobile": "vite --mode mobile"
}
Résultat
Sur PC : npm run dev
→ frontend accessible seulement sur localhost:5173, backend en http://localhost:8080/api.
Sur mobile : npm run dev:mobile
→ frontend exposé sur http://192.168.43.162:5173, backend en http://192.168.43.162:8080/api.