Define tree for pitti's workstation
[workstation-ostree-config.git] / README.md
1 Martin Pitt's desktop
2 =====================
3
4 This is an [rpm-ostree](https://coreos.github.io/rpm-ostree/) based minimal
5 [Fedora](https://getfedora.org/) developer desktop with the [sway window manager](https://swaywm.org/) and [podman](https://podman.io/)/[toolbox](https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) for doing development and running less common graphical applications.
6
7 It gets [automatically built](.github/workflows/build.yml) every week and [published to my server](https://piware.de/ostree/pitti-workstation/).
8
9 To use it from an existing OSTree based system like [Fedora CoreOS](https://getfedora.org/coreos) or [Fedora Silverblue](https://docs.fedoraproject.org/en-US/fedora-silverblue/), add my server URL as new remote and rebase your tree to it:
10
11 ```sh
12 sudo ostree remote add --no-gpg-verify piware https://piware.de/ostree/pitti-workstation/
13 sudo rpm-ostree rebase piware:pitti-desktop
14 ```
15
16 After that, you can install weekly updates with
17
18 ```
19 sudo rpm-ostree upgrade
20 ```
21
22 If anything goes wrong, you can go back to the previous version with `sudo rpm-ostree rollback`.
23
24
25 Original README for [workstation-ostree-config](https://pagure.io/workstation-ostree-config)
26 =============================================
27
28 For some background, see:
29
30  - https://fedoraproject.org/wiki/Workstation/AtomicWorkstation
31  - https://fedoraproject.org/wiki/Changes/WorkstationOstree
32  
33 (Note also this repo obsoletes https://pagure.io/atomic-ws)
34
35 High level design
36 -----------------
37
38 The goal of the system is to be a workstation, using
39 rpm-ostree for the base OS, and a combination of
40 Docker and Flatpak containers, as well as virtualization
41 tools such as Vagrant.
42
43 Status
44 ------
45
46 This project is actively maintained and is ready for use
47 by sophisticated and interested users, but not ready
48 for widespread promotion.
49
50 See some [https://lists.fedoraproject.org/archives/list/desktop@lists.fedoraproject.org/thread/J6BJS7Z4NKNOQUZWGYXZZIEKYMWBBSUY/](discussion about the first release).
51
52 Installing
53 ------------
54
55 See the Silverblue documentation at
56 https://docs.fedoraproject.org/en-US/fedora-silverblue/installation-guide/.
57 There's also a guide for installing inside an existing system:
58 https://docs.fedoraproject.org/en-US/fedora-silverblue/installation-dual-boot/.
59
60 Important issues:
61 -----------------------
62
63  - [flatpak system repo](https://github.com/flatpak/flatpak/issues/113#issuecomment-247022006)
64
65 Using the system
66 --------------------
67
68 One of the first things you should do use is use a container runtime of your
69 choice to manage one or more "pet" containers.  This is where you will use
70 `yum/dnf` to install utilities.
71
72 With `docker` for example, you can use the `-v /srv:/srv` command line option so
73 these containers can share content with your host (such as git repositories).
74 Note that if you want to share content between multiple Docker containers and
75 the host (e.g. your desktop session), you should execute (once):
76
77 ```
78 sudo chcon -R -h -t container_file_t /var/srv
79 ```
80
81 Next, let's try flatpak. Before you do: There's a known flatpak issue on
82 AtomicWS - run [this workaround](https://github.com/flatpak/flatpak/issues/113#issuecomment-247022006),
83 which you only need to do once. After that, [try flatpak](http://flatpak.org/apps.html).
84
85 If you are a developer for server applications,
86 try [oc cluster up](https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md) to
87 create a local OpenShift v3 cluster.
88
89 Finally, try out `rpm-ostree install` to layer additional packages directly on
90 the host. This is needed for "host extensions" - privileged software that
91 doesn't make sense to live in a container. For example, `rpm-ostree install
92 powerline` to use that software for the shell prompts of the host.  Another
93 good example is `rpm-ostree install vagrant-libvirt` to use [Vagrant](https://www.vagrantup.com/)
94 to manage VMs.
95
96 Future work
97 -----------
98
99  - GNOME Software support for both rpm-ostree/flatpak and possibly docker
100  - automated tests that run on this content