From eb95cbbdca72a477bc435b4de865019d437e9d42 Mon Sep 17 00:00:00 2001 From: PauloASilva Date: Sun, 21 Apr 2019 11:54:26 +0100 Subject: [PATCH 01/63] feat(gitbook): build with gitbook --- .gitignore | 1 + book.json | 5 + dist/owasp-docker-security.epub | Bin 0 -> 69194 bytes dist/owasp-docker-security.mobi | Bin 0 -> 199458 bytes dist/owasp-docker-security.pdf | Bin 0 -> 395371 bytes package-lock.json | 4718 +++++++++++++++++ package.json | 16 + .../000 - Introduction.md | 0 001 - Threats.md => src/001 - Threats.md | 0 D00 - Overview.md => src/D00 - Overview.md | 0 .../D01 - Secure User Mapping.md | 0 .../D02 - Patch Management Strategy.md | 0 ...03 - Network Separation and Firewalling.md | 0 .../D04 - Secure Defaults and Hardening.md | 6 +- .../D05 - Maintain Security Contexts.md | 0 .../D06 - Protect Secrets.md | 0 .../D07 - Resource Protection.md | 0 ... - Container Image Integrity and Origin.md | 0 .../D09 - Follow Immutable Paradigm.md | 0 D10 - Logging.md => src/D10 - Logging.md | 0 .../E11 - What's Next?.md | 0 License.md => src/License.md | 0 src/README.md | 40 + src/SUMMARY.md | 18 + src/cover.jpg | Bin 0 -> 508506 bytes src/cover_small.jpg | Bin 0 -> 24584 bytes src/images/cover.xcf | Bin 0 -> 1093752 bytes 27 files changed, 4803 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 book.json create mode 100644 dist/owasp-docker-security.epub create mode 100644 dist/owasp-docker-security.mobi create mode 100644 dist/owasp-docker-security.pdf create mode 100644 package-lock.json create mode 100644 package.json rename 000 - Introduction.md => src/000 - Introduction.md (100%) rename 001 - Threats.md => src/001 - Threats.md (100%) rename D00 - Overview.md => src/D00 - Overview.md (100%) rename D01 - Secure User Mapping.md => src/D01 - Secure User Mapping.md (100%) rename D02 - Patch Management Strategy.md => src/D02 - Patch Management Strategy.md (100%) rename D03 - Network Separation and Firewalling.md => src/D03 - Network Separation and Firewalling.md (100%) rename D04 - Secure Defaults and Hardening.md => src/D04 - Secure Defaults and Hardening.md (95%) rename D05 - Maintain Security Contexts.md => src/D05 - Maintain Security Contexts.md (100%) rename D06 - Protect Secrets.md => src/D06 - Protect Secrets.md (100%) rename D07 - Resource Protection.md => src/D07 - Resource Protection.md (100%) rename D08 - Container Image Integrity and Origin.md => src/D08 - Container Image Integrity and Origin.md (100%) rename D09 - Follow Immutable Paradigm.md => src/D09 - Follow Immutable Paradigm.md (100%) rename D10 - Logging.md => src/D10 - Logging.md (100%) rename E11 - What's Next?.md => src/E11 - What's Next?.md (100%) rename License.md => src/License.md (100%) create mode 100644 src/README.md create mode 100644 src/SUMMARY.md create mode 100644 src/cover.jpg create mode 100644 src/cover_small.jpg create mode 100644 src/images/cover.xcf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/book.json b/book.json new file mode 100644 index 0000000..c6d40e4 --- /dev/null +++ b/book.json @@ -0,0 +1,5 @@ +{ + "language": "en_US", + "root": "./src" +} + diff --git a/dist/owasp-docker-security.epub b/dist/owasp-docker-security.epub new file mode 100644 index 0000000000000000000000000000000000000000..c7d9ebefe164bf0d7f3e0de5d1fff8f7c629d4cd GIT binary patch literal 69194 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