diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000000000000000000000000000000000000..5b8e566d2975d1b30dac947cf81ffa5dc65883c5
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,14 @@
+######################################################
+DB_NAME=meanspec
+DB_USER=meanspec
+DB_PASSWORD=foopassword123
+
+
+######################################################
+# DO NOT MODITY IF YOU DON'T KNOW WHAT YOU ARE DOING #
+######################################################
+DB_HOST=postgres
+DB_PORT=5432
+
+# API listen port
+PORT=8000
diff --git a/.gitignore b/.gitignore
index 413a72a015d4d48964015fc6f3e9a368e5a9a29c..f454fa165bac1cbccf965d9286938b0911d0668e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,5 @@
 /database
 /redis/data
+
+/.env*
+!/.env.example
diff --git a/docker-compose.yml b/docker-compose.yml
index f21ff03abe183e367a34f8b235f4f66d0c7d2f2a..a735eb64d9a137c6a295bc45d2e87e0796edd5a1 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -8,6 +8,7 @@ services:
       LC_ALL: en_US.utf-8
     ports:
       - 8000:8000
+    env_file: .env
 
   postgres:
     image: docker.io/library/postgres:17-alpine
@@ -21,13 +22,14 @@ services:
     volumes:
       - ./database:/var/lib/postgresql/data
       - ./init/sql:/docker-entrypoint-initdb.d/
+    env_file: .env
     environment:
       TZ: Asia/Seoul
       LANG: en_US.utf-8
       LC_ALL: en_US.utf-8
-      POSTGRES_PASSWORD: foopassword123
-      POSTGRES_USER: meanspec
-      POSTGRES_DB: meanspec
+      POSTGRES_PASSWORD: ${DB_PASSWORD:-foopassword123}
+      POSTGRES_USER: ${DB_USER:-meanspec}
+      POSTGRES_DB: ${DB_NAME:-meanspec}
 
   redis:
     image: redis:7.4.1-alpine