diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 046e6e1a621cc58b025e576497ad7867c9c0781d..1feae179270f727e6070ae70b87668278ed4d1a1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,2 +1,3 @@
 include:
-  - remote: 'https://gitlab.master3.takima.io/guide/tools/pipeline-templates/-/blob/main/templates/.gitlab-ci-m3press-milestone.yml'
+  file: "./templates/.gitlab-ci-m3press-milestone.yml"
+  
\ No newline at end of file
diff --git a/template/.gitlab-ci-m3-press-milestone.yml b/template/.gitlab-ci-m3-press-milestone.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eee9db904a431125bf1652674cc11dc8e591f89a
--- /dev/null
+++ b/template/.gitlab-ci-m3-press-milestone.yml
@@ -0,0 +1,110 @@
+stages:
+  - doc
+  - doc-deploy
+  - 'deploy resources'
+
+variables:
+  M3_DOCS_FOLDER: docs # docs is the folder containing public markdown files
+  M3_PRESS_URL: ://guide.${CI_PAGES_DOMAIN}
+  M3_GITLAB_URL: ${CI_SERVER_URL}
+  M3_REGISTRY_URL: ${CI_REGISTRY}
+  ## resources
+  M3_RESOURCES_JOB: resources
+  M3_RESOURCES_FOLDER: resources
+  M3_RESOURCES_API: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/artifacts/${CI_DEFAULT_BRANCH}
+  M3_RESOURCES_ARCHIVE_URL: ${M3_RESOURCES_API}/download?job=${M3_RESOURCES_JOB}
+  ## file resources
+  M3_RESOURCES_FILE_JOB: file-resources
+  M3_RESOURCES_FILE_URL: ${M3_RESOURCES_API}/raw/${M3_RESOURCES_FOLDER}/@{RESOURCE_PATH}?job=${M3_RESOURCES_FILE_JOB}
+  ## correction
+  M3_CORRECTION_JOB: correction
+  M3_CORRECTION_FOLDER: done
+  M3_CORRECTION_API: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/artifacts/${CI_DEFAULT_BRANCH}
+  M3_CORRECTION_ARCHIVE_URL: ${M3_CORRECTION_API}/download?job=${M3_CORRECTION_JOB}
+
+  M3_CORRECTION_FILE_JOB: file-correction
+  M3_CORRECTION_FILE_URL: ${M3_CORRECTION_API}/raw/${M3_CORRECTION_FOLDER}/@{RESOURCE_PATH}?job=${M3_CORRECTION_FILE_JOB}
+
+workflow:
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+
+build-doc:
+  stage: doc
+  tags:
+    - "m3-press"
+  image:
+    name: registry.master3.takima.io/guide/tools/m3-press
+    entrypoint: [""]
+  script:
+    - m3press build ${M3_DOCS_FOLDER}
+
+
+  artifacts:
+    paths:
+      - "dist"
+    untracked: false
+    expire_in: 30 days
+
+pages:
+  stage: doc-deploy
+  image: alpine
+  tags:
+    - "m3-press"
+  needs:
+    - build-doc
+  script:
+    - rm -rf public
+    - mv ./dist public
+  artifacts:
+    paths:
+      - public
+
+# ---------------- build resources ----------------
+
+.resources:
+  stage: 'deploy resources'
+  image: alpine
+  tags:
+    - "m3-press"
+  variables:
+    ARCHIVE_FOLDER: ${M3_RESOURCES_FOLDER}
+  script:
+    - echo "Archiving $ARCHIVE_FOLDER folder as an artifact"
+  artifacts:
+    name: $ARTIFACT_NAME
+    paths:
+      - ${ARCHIVE_FOLDER}/**
+    expire_in: 1 day
+
+resources:
+  extends: .resources
+  variables:
+    ARCHIVE_FOLDER: ${M3_RESOURCES_FOLDER}
+    ARTIFACT_NAME: resources
+
+correction:
+  extends: .resources
+  variables:
+    ARCHIVE_FOLDER: ${M3_CORRECTION_FOLDER}
+    ARTIFACT_NAME: correction
+
+.file-resources:
+  extends: .resources
+  script:
+    - apk add zip
+    - echo "creating archive for resources in ${ARCHIVE_FOLDER}"
+    - mkdir -p ${ARCHIVE_FOLDER} && cd ${ARCHIVE_FOLDER} 
+    - find . -mindepth 1  -maxdepth 1 -type d | xargs  -n1 -r sh -c 'zip -r $0.zip $0'
+
+file-resources:
+  extends: .file-resources
+  variables:
+    ARCHIVE_FOLDER: ${M3_RESOURCES_FOLDER}
+    ARTIFACT_NAME: resources-files
+
+file-correction:
+  extends: .file-resources
+  variables:
+    ARCHIVE_FOLDER: ${M3_CORRECTION_FOLDER}
+    ARTIFACT_NAME: correction-files