Skip to content

Commit d76bc47

Browse files
author
Simon Brown
committed
Rewrite as a Jekyll site.
1 parent 86b2b68 commit d76bc47

File tree

86 files changed

+1444
-7089
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+1444
-7089
lines changed

.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copied from https://github.com/github/gitignore/blob/main/Jekyll.gitignore
2+
# Ignore metadata generated by Jekyll
3+
_site/
4+
.sass-cache/
5+
.jekyll-cache/
6+
.jekyll-metadata
7+
8+
# Ignore folders generated by Bundler
9+
.bundle/
10+
vendor/
11+
12+
Gemfile.lock
13+
14+
.idea

CNAME

Lines changed: 0 additions & 1 deletion
This file was deleted.

Gemfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
source 'https://rubygems.org'
2+
3+
gem "jekyll", "~> 4.3.2" # installed by `gem jekyll`
4+
# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2
5+
6+
gem "just-the-docs", "0.6.1" # pinned to the current release
7+
# gem "just-the-docs" # always download the latest release

Gemfile.lock

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
addressable (2.8.7)
5+
public_suffix (>= 2.0.2, < 7.0)
6+
bigdecimal (3.1.8)
7+
colorator (1.1.0)
8+
concurrent-ruby (1.3.4)
9+
em-websocket (0.5.3)
10+
eventmachine (>= 0.12.9)
11+
http_parser.rb (~> 0)
12+
eventmachine (1.2.7)
13+
ffi (1.17.0-aarch64-linux-gnu)
14+
ffi (1.17.0-arm64-darwin)
15+
ffi (1.17.0-x86_64-linux-gnu)
16+
ffi (1.17.0-x86_64-linux-musl)
17+
forwardable-extended (2.6.0)
18+
google-protobuf (4.27.3-aarch64-linux)
19+
bigdecimal
20+
rake (>= 13)
21+
google-protobuf (4.27.3-arm64-darwin)
22+
bigdecimal
23+
rake (>= 13)
24+
google-protobuf (4.27.3-x86_64-linux)
25+
bigdecimal
26+
rake (>= 13)
27+
http_parser.rb (0.8.0)
28+
i18n (1.14.5)
29+
concurrent-ruby (~> 1.0)
30+
jekyll (4.3.3)
31+
addressable (~> 2.4)
32+
colorator (~> 1.0)
33+
em-websocket (~> 0.5)
34+
i18n (~> 1.0)
35+
jekyll-sass-converter (>= 2.0, < 4.0)
36+
jekyll-watch (~> 2.0)
37+
kramdown (~> 2.3, >= 2.3.1)
38+
kramdown-parser-gfm (~> 1.0)
39+
liquid (~> 4.0)
40+
mercenary (>= 0.3.6, < 0.5)
41+
pathutil (~> 0.9)
42+
rouge (>= 3.0, < 5.0)
43+
safe_yaml (~> 1.0)
44+
terminal-table (>= 1.8, < 4.0)
45+
webrick (~> 1.7)
46+
jekyll-include-cache (0.2.1)
47+
jekyll (>= 3.7, < 5.0)
48+
jekyll-sass-converter (3.0.0)
49+
sass-embedded (~> 1.54)
50+
jekyll-seo-tag (2.8.0)
51+
jekyll (>= 3.8, < 5.0)
52+
jekyll-watch (2.2.1)
53+
listen (~> 3.0)
54+
just-the-docs (0.6.1)
55+
jekyll (>= 3.8.5)
56+
jekyll-include-cache
57+
jekyll-seo-tag (>= 2.0)
58+
rake (>= 12.3.1)
59+
kramdown (2.4.0)
60+
rexml
61+
kramdown-parser-gfm (1.1.0)
62+
kramdown (~> 2.0)
63+
liquid (4.0.4)
64+
listen (3.9.0)
65+
rb-fsevent (~> 0.10, >= 0.10.3)
66+
rb-inotify (~> 0.9, >= 0.9.10)
67+
mercenary (0.4.0)
68+
pathutil (0.16.2)
69+
forwardable-extended (~> 2.6)
70+
public_suffix (6.0.1)
71+
rake (13.2.1)
72+
rb-fsevent (0.11.2)
73+
rb-inotify (0.11.1)
74+
ffi (~> 1.0)
75+
rexml (3.3.5)
76+
strscan
77+
rouge (4.3.0)
78+
safe_yaml (1.0.5)
79+
sass-embedded (1.77.8)
80+
google-protobuf (~> 4.26)
81+
rake (>= 13)
82+
sass-embedded (1.77.8-arm64-darwin)
83+
google-protobuf (~> 4.26)
84+
strscan (3.1.0)
85+
terminal-table (3.0.2)
86+
unicode-display_width (>= 1.1.1, < 3)
87+
unicode-display_width (2.5.0)
88+
webrick (1.8.1)
89+
90+
PLATFORMS
91+
aarch64-linux
92+
arm64-darwin
93+
x86_64-linux-gnu
94+
x86_64-linux-musl
95+
96+
DEPENDENCIES
97+
jekyll (~> 4.3.2)
98+
just-the-docs (= 0.6.1)
99+
100+
BUNDLED WITH
101+
2.5.9

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Structurizr documentation
2+
3+
This repo contains the source for the GitHub Pages/Jekyll website published at https://c4model.com
4+
5+
## Local authoring
6+
7+
If you'd like to author/view the docs locally:
8+
9+
1. `git clone https://github.com/simonbrowndotje/c4model.git`
10+
2. `cd c4model`
11+
3. `docker run -p 4000:4000 -v $(pwd):/site bretfisher/jekyll-serve`
12+
4. Open http://localhost:4000

_config.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
title: C4 model
2+
description: The C4 model for visualising software architecture
3+
theme: just-the-docs
4+
color_scheme: c4model
5+
6+
url: https://c4model.com
7+
8+
nav_external_links:
9+
- title: Training/workshops
10+
url: https://simonbrown.je/#workshops
11+
12+
gh_edit_link: true
13+
gh_edit_link_text: "Edit this page on GitHub."
14+
gh_edit_repository: "https://github.com/simonbrowndotje/c4model"
15+
gh_edit_branch: "master"
16+
gh_edit_view_mode: "tree"

_sass/color_schemes/c4model.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
$link-color: #1168BD;

abstractions/01-person.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
layout: default
3+
title: Person
4+
parent: Abstractions
5+
nav_order: 1
6+
permalink: /abstractions/person
7+
---
8+
9+
# Person
10+
11+
A person represents one of the human users of your software system (e.g. actors, roles, personas, etc).

abstractions/02-software-system.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
layout: default
3+
title: Software system
4+
parent: Abstractions
5+
nav_order: 2
6+
permalink: /abstractions/software-system
7+
---
8+
9+
# Software system
10+
11+
A software system is the highest level of abstraction and describes something that delivers value to its users,
12+
whether they are human or not. This includes the software system you are modelling, and the other software systems
13+
upon which your software system depends (or vice versa).
14+
15+
Unfortunately the term "software system" is the hardest of the C4 model abstractions to define, and this isn't helped
16+
by the fact that each organisation will also have their own terminology for describing the same thing, typically using
17+
terms such as "application", "product", "service", etc. One way to think about it is that a software system is
18+
something a single software development team is building, owns, has responsibility for, and can see the internal
19+
implementation details of. Perhaps the code for that software system resides in a single source code repository,
20+
and anybody on the team is entitled to modify it. In many cases, the boundary of a software system will correspond to
21+
the boundary of a single team. It may also be the case that everything inside the boundary of a software system is
22+
deployed at the same time.

abstractions/03-container.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
layout: default
3+
title: Container
4+
parent: Abstractions
5+
nav_order: 3
6+
permalink: /abstractions/container
7+
---
8+
9+
# Container
10+
11+
Not Docker! In the C4 model, a container represents an __application__ or a __data store__. A container is something
12+
that needs to be running in order for the overall software system to work. In real terms, a container is something like:
13+
14+
- __Server-side web application__: A Java EE web application running on Apache Tomcat, an ASP.NET MVC application running on Microsoft IIS, a Ruby on Rails application running on WEBrick, a Node.js application, etc.
15+
- __Client-side web application__: A JavaScript application running in a web browser using Angular, Backbone.JS, jQuery, etc.
16+
- __Client-side desktop application__: A Windows desktop application written using WPF, an OS X desktop application written using Objective-C, a cross-platform desktop application written using JavaFX, etc.
17+
- __Mobile app__: An Apple iOS app, an Android app, a Microsoft Windows Phone app, etc.
18+
- __Server-side console application__: A standalone (e.g. "public static void main") application, a batch process, etc.
19+
- __Serverless function__: A single serverless function (e.g. Amazon Lambda, Azure Function, etc).
20+
- __Database__: A schema or database in a relational database management system, document store, graph database, etc such as MySQL, Microsoft SQL Server, Oracle Database, MongoDB, Riak, Cassandra, Neo4j, etc.
21+
- __Blob or content store__: A blob store (e.g. Amazon S3, Microsoft Azure Blob Storage, etc) or content delivery network (e.g. Akamai, Amazon CloudFront, etc).
22+
- __File system__: A full local file system or a portion of a larger networked file system (e.g. SAN, NAS, etc).
23+
- __Shell script__: A single shell script written in Bash, etc.
24+
- etc

0 commit comments

Comments
 (0)