annotate man/sci.7 @ 72:3a5ecc40451a

themes: fix bulma index
author David Demelier <markand@malikania.fr>
date Tue, 24 Jan 2023 10:22:55 +0100
parents 5076be758687
children 71cd8447e3a4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 .\"
32
081e1c258e64 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 13
diff changeset
2 .\" Copyright (c) 2021-2022 David Demelier <markand@malikania.fr>
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 .\"
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 .\" Permission to use, copy, modify, and/or distribute this software for any
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 .\" purpose with or without fee is hereby granted, provided that the above
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 .\" copyright notice and this permission notice appear in all copies.
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 .\"
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 .\"
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
16 .Dd August 04, 2022
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 .Dt SCI 7
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 .Os
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 .\" NAME
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 .Sh NAME
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 .Nm sci
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 .Nd simple continuous integration framework
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 .\" DESCRIPTION
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 .Sh DESCRIPTION
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 The
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 .Nm
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 framework is a set of utilities to run automated tasks similarly to alternatives
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 such as jenkins or buildbot.
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 .Pp
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 In contrast to those,
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 .Nm sci
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
32 does not know how to build project nor how to retrieve information when to
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
33 build them. It only works by user project scripts to be executed upon addition
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
34 of jobs.
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 .Pp
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 It is designed in mind to be as simple as possible to improve flexibility and
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 simple documentation.
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 .\" OVERVIEW
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 .Sh OVERVIEW
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 The
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 .Nm
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
42 framework is split into three individual programs that are used independently.
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 The communication workflow is:
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 .Bd -literal
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
45 o ---- scictl
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
46 /
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
47 scid (HTTP) o
66
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
48 | \\
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
49 | o ---- sciworkerd
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
50 SQLite
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 .Ed
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 .Pp
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 The
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 .Nm scid
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
55 daemon is the unique access to the SQLite database and simply take requests
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
56 over an HTTP REST API to retrieve and set results into it.
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 .Pp
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 The
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 .Nm scictl
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 is the administrative utility to update the database using a command line
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 interface. It can also be used to create jobs and their result manually if
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 wanted.
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 .Pp
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 The
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 .Nm sciworkerd
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 is a daemon executing jobs on a host machine. It access the jobs listing by
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 querying
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 .Nm scid
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
69 and output their result.
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 .\" ENTITIES
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 .Sh ENTITIES
66
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
72 The process handles different kind of entities in the database.
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 .\" PROJECTS
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 .Ss PROJECTS
64
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
75 A project is a user description of what to be automated and tested. It has a
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 name, description, project URL and a script to execute. They can be created
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 using the
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 .Cm project-add
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 command from
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 .Nm scictl .
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 .\" JOBS
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 .Ss JOBS
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 Jobs are tasks to be performed by any worker for a given project. It has an user
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 arbitrary tag that will be passed to the project script as sole argument. In
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 contrats to many CI system, the sci framework has no information about how to
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 build and access a project and as such the job tag can be anything up to the
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 user (a SCM repo revision, date, simple id, etc).
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 .\" WORKERS
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 .Ss WORKERS
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 A worker is a host system that connects to
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
91 .Nm scid
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 using HTTP protocol to get acces to jobs to perform, execute them and finally
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 send the result back. They have been designed to use HTTP to allow remote usage.
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 .\" JOB RESULTS
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 .Ss JOB RESULTS
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 A job result is the detail about a job ran by a worker for a specific project.
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 If a job exists for one project and there are four workers on the user
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 installation, there will be four job results. It has an exit code (got from the
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 user script), a log console (capture from standard output and error) and a
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 timestamp when it was started.
64
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
101 .\" GETTING STARTED
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
102 .Sh GETTING STARTED
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
103 To setup the
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
104 .Nm
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
105 framework you need at least:
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
106 .Bl -enum
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
107 .It
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
108 A daemon
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
109 .Xr scid 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
110 running and accessible remotely.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
111 .It
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
112 One or more
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
113 .Xr sciworkerd 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
114 running on a machine that can access
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
115 .Xr scid 8 .
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
116 .It
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
117 Add some projects and register those workers using
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
118 .Xr scictl 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
119 utility.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
120 .El
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
121 .\" Setup scid
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
122 .Ss Setup scid
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
123 The
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
124 .Xr scid 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
125 daemon does not require much configuration, you can specify the database file
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
126 to use with its appropriate options. Otherwise, you can simply run the daemon
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
127 with no arguments. It will initialize the database and generate a default API
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
128 key that
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
129 .Xr scictl 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
130 and
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
131 .Xr sciworkerd 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
132 require to perform requests. Use the
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
133 .Cm api-get
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
134 command to get that key.
66
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
135 .Pp
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
136 The
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
137 .Xr scid 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
138 program isn't a daemon by itself but a CGI or FastCGI process which needs to be
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
139 coupled with a dedicated web server. For the example let's use nginx and the
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
140 .Xr kfcgi 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
141 utility to spawn our FastCGI process.
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
142 .Pp
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
143 Configure the nginx server to include at least the following code snippet for a
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
144 specific virtual host (the
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
145 .Xr scid 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
146 process explicitly requires its own virtual host).
64
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
147 .Bd -literal -offset indent
66
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
148 server {
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
149 server_name sci.myhostname.fr;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
150 listen 80;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
151
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
152 location / {
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
153 fastcgi_param QUERY_STRING query_string;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
154 fastcgi_param REQUEST_METHOD $request_method;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
155 fastcgi_param CONTENT_TYPE $content_type;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
156 fastcgi_param CONTENT_LENGTH $content_length;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
157 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
158 fastcgi_param SCRIPT_NAME $fastcgi_script_name;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
159 fastcgi_param PATH_INFO $document_uri;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
160 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
161 fastcgi_param REQUEST_URI $request_uri;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
162 fastcgi_param DOCUMENT_URI $document_uri;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
163 fastcgi_param DOCUMENT_ROOT $document_root;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
164 fastcgi_param SERVER_PROTOCOL $server_protocol;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
165 fastcgi_param GATEWAY_INTERFACE CGI/1.1;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
166 fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
167 fastcgi_param REMOTE_ADDR $remote_addr;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
168 fastcgi_param REMOTE_PORT $remote_port;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
169 fastcgi_param SERVER_ADDR $server_addr;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
170 fastcgi_param SERVER_PORT $server_port;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
171 fastcgi_param SERVER_NAME $server_name;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
172 fastcgi_param HTTPS $https;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
173 fastcgi_pass unix:/var/www/run/httpd.sock;
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
174 }
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
175 }
64
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
176 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
177 .Pp
66
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
178 Now, start the process using
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
179 .Xr kfcgi 8 .
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
180 It is recommended though, that the process lives in a clean chroot but in the
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
181 example we will skip that because
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
182 .Xr scid 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
183 cannot be built as static binary yet, you could as an alternative setup a
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
184 chroot where all required libraries are available in order to run
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
185 .Xr scid 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
186 inside of it.
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
187 .Pp
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
188 We will assume that the webserver is running with
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
189 .Em www
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
190 user and group which is the default also used with
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
191 .Xr kfcgi 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
192 utility. The webserver must have read/write access to the UNIX socket generated
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
193 with
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
194 .Xr kfcgi 8 .
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
195 .Pp
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
196 This command needs to be ran as root but it will drop privileges to
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
197 appropriate users and groups. See
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
198 .Xr kfcgi 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
199 for more details.
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
200 .Bd -literal -offset indent
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
201 # kfcgi -p / -- scid -f
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
202 Or
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
203 # kfcgi -p / -u www -U www -- scid -f -d /path/to/sci.db -t /path/to/theme
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
204 Or if you have a functional chroot (scid path is relative to it)
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
205 # kfcgi -p /srv/sci -- /usr/bin/scid -f
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
206 .Ed
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
207 .Pp
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
208 Make sure that
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
209 .Xr scid 8
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
210 get read/write access to the default database path if you're not using the
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
211 .Fl d
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
212 option. Also don't forget the
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
213 .Fl f
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
214 option which indicates the process to run as FastCGI rather than plain CGI.
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
215 .Pp
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
216 If the command succeeded, Retrieve the stored key:
64
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
217 .Bd -literal -offset indent
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
218 $ scid api-get
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
219 1234567890secretABCDEF
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
220 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
221 .Pp
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
222 Both
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
223 .Xr scictl 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
224 and
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
225 .Xr sciworkerd 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
226 understand the same options and environment variables. So let's set the API key
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
227 as environment variable for the next chapters.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
228 .Bd -literal -offset indent
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
229 export SCI_API_KEY=1234567890secretABCDEF
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
230 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
231 .Pp
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
232 If you run
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
233 .Xr scid 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
234 on a machine that is not on the same as the worker, you also
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
235 need to specify the
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
236 .Ev SCI_API_URL
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
237 environment variable.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
238 .Bd -literal -offset indent
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
239 export SCI_API_URL=http://127.0.0.1
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
240 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
241 .\" Setup a worker
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
242 .Ss Setup a worker
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
243 To register a worker, use the
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
244 .Cm worker-add
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
245 command from
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
246 .Xr scictl 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
247 utility.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
248 .Bd -literal -offset indent
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
249 scictl worker-add openbsd "OpenBSD 7.2"
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
250 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
251 .Pp
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
252 It is
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
253 .Em strongly
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
254 advised to run a
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
255 .Xr sciworkerd 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
256 instance inside a chroot or a virtual machine, remember that it will fetch the
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
257 script code remotely!
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
258 .Bd -literal -offset indent
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
259 $ sciworkerd
66
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
260 Or more secure alternative
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
261 # chroot /src/sci /usr/bin/sciworkerd -j2
64
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
262 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
263 .Pp
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
264 Please make sure to read
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
265 .Xr sciworkerd 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
266 manual page for more tuning options.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
267 .\" Register a project
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
268 .Ss Register a project
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
269 Create a project named
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
270 .Em hello
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
271 with a description, URL, a homepage and a script file to execute. The script
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
272 code can be of any language but it's advised that you stick with some
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
273 interpreted language as many different workers may execute it.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
274 .Bd -literal -offset indent
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
275 $ scictl project-add hello "Hello World" "http://hello.org" "hello.sh"
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
276 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
277 .\" Register jobs
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
278 .Ss Register jobs
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
279 Now, you may want to register a job that will be executed for every worker.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
280 .Pp
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
281 Use the
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
282 .Cm job-add
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
283 command from
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
284 .Xr scictl 8
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
285 utility. The
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
286 .Ar tag
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
287 argument is the unique argument that will be passed to the script code. In our
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
288 case we will assume it's a revision from a SCM repository.
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
289 .Bd -literal -offset indent
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
290 $ scictl job-add hello 67470b67e460
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
291 .Ed
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
292 .Pp
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
293 And after that, any
562372396019 misc: improve manual pages and documentation
David Demelier <markand@malikania.fr>
parents: 35
diff changeset
294 .Xr sciworkerd 8
66
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
295 instance will fetch the job, run it and send the result. It is best used with
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
296 your SCM to add automatic job when pushing changes.
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
297 .Pp
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
298 Note: Jobs that are created before the registration of a worker won't be
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
299 executed as it would create a high number of jobs to be performed each time you
5076be758687 misc: update before 0.1.0 release
David Demelier <markand@malikania.fr>
parents: 64
diff changeset
300 create a new worker.
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 .\" SEE ALSO
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 .Sh SEE ALSO
35
084dee2bef50 man: updates
David Demelier <markand@malikania.fr>
parents: 32
diff changeset
303 .Xr scictl 8 ,
13
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 .Xr scid 8 ,
67348ec46425 man: add manual pages
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 .Xr sciworkerd 8