mirror of
https://github.com/theupdateframework/python-tuf
synced 2026-05-24 10:08:28 +00:00
79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# Quickstart #
|
|
|
|
The CLI requires a few dependencies and C extensions that can be installed with
|
|
`pip install securesystemslib[crypto,pynacl]`.
|
|
|
|
----
|
|
The following is a basic workflow in four steps:
|
|
|
|
**Step (1)** - Initialize a repo. The `tufrepo`, `tufkeystore`, and
|
|
`tufclient` directories are created in the current working directory.
|
|
```Bash
|
|
$ repo.py --init
|
|
```
|
|
|
|
**Step (2)** - Add a target file to the repo. The file size and hashes of
|
|
the target file are also written to the Targets metadata file.
|
|
```Bash
|
|
$ echo 'Test file' > testfile
|
|
$ repo.py --add testfile
|
|
$ tree tufrepo/
|
|
tufrepo/
|
|
├── metadata
|
|
│ ├── 1.root.json
|
|
│ ├── root.json
|
|
│ ├── snapshot.json
|
|
│ ├── targets.json
|
|
│ └── timestamp.json
|
|
├── metadata.staged
|
|
│ ├── 1.root.json
|
|
│ ├── root.json
|
|
│ ├── snapshot.json
|
|
│ ├── targets.json
|
|
│ └── timestamp.json
|
|
└── targets
|
|
└── testfile
|
|
|
|
3 directories, 11 files
|
|
```
|
|
|
|
**Step (3)** - Serve the repo
|
|
```Bash
|
|
$ cd "tufrepo/"
|
|
$ python -m SimpleHTTPServer 8001
|
|
|
|
or with Python 3...
|
|
$ python3 -m http.server 8001
|
|
```
|
|
|
|
**Step (4)** - Fetch a target file from the repo. The client downloads
|
|
any required metadata and the requested target file.
|
|
```Bash
|
|
$ cd "tufclient/"
|
|
$ client.py --repo http://localhost:8001 testfile
|
|
$ tree
|
|
.
|
|
├── tufrepo
|
|
│ └── metadata
|
|
│ ├── current
|
|
│ │ ├── 1.root.json
|
|
│ │ ├── root.json
|
|
│ │ ├── snapshot.json
|
|
│ │ ├── targets.json
|
|
│ │ └── timestamp.json
|
|
│ └── previous
|
|
│ ├── 1.root.json
|
|
│ ├── root.json
|
|
│ ├── snapshot.json
|
|
│ ├── targets.json
|
|
│ └── timestamp.json
|
|
└── tuftargets
|
|
└── testfile
|
|
|
|
5 directories, 11 files
|
|
```
|
|
----
|
|
|
|
See [CLI.md](CLI.md) and [CLI_EXAMPLES.md](CLI_EXAMPLES.md) to learn about the
|
|
other supported CLI options. A [tutorial](TUTORIAL.md) is also available, and
|
|
intended for users that want more control over the repo creation process.
|