* "no repositories found": cgit + gitolite + nginx -- git/ssh access OK, web access OK, no errors, but no repos found/displayed?
@ 2019-08-14 1:48 pgnet.dev
[not found] ` <CAEZES=9_MqRX6YKE+uyE1CgmTB=mEEPd4u6LLQBo1FZMRgwGEw@mail.gmail.com>
0 siblings, 1 reply; 3+ messages in thread
From: pgnet.dev @ 2019-08-14 1:48 UTC (permalink / raw)
I installed a server with,
nginx -v
nginx version: nginx/1.17.3
uwsgi --version
2.0.18
cgit/cgit.cgi --version
CGit v1.2.1 | https://git.zx2c4.com/cgit/
Compiled in features:
[-] Lua scripting
[+] Linux sendfile() usage
cd gitolite
git log | head
commit ef9ab68412cbee93c24eb920dbabbb6daa8b1c08
Author: Sitaram Chamarty <sitaramc at gmail.com>
Date: Tue Jun 11 11:53:30 2019 +0530
Users/groups are setup as
id wwwrun
uid=30(wwwrun) gid=8(www) groups=8(www),475(gitolite)
id wwwrun-cgit
uid=474(wwwrun-cgit) gid=8(www) groups=8(www),475(gitolite)
id gitolite
uid=475(gitolite) gid=475(gitolite) groups=475(gitolite)
where, nginx/webserver user:group are
wwwrun:www
gitolite initial repo's are installed
ls -al /data/git/gitolite/repositories/
total 16K
drwxr-x--- 4 gitolite gitolite 4.0K Aug 12 20:05 ./
drwxr-x--- 9 gitolite gitolite 4.0K Aug 12 20:06 ../
drwxr-x--- 8 gitolite gitolite 4.0K Aug 12 20:05 gitolite-admin.git/
drwxr-x--- 7 gitolite gitolite 4.0K Aug 12 20:05 testing.git/
cat /data/git/gitolite/projects.list
testing.git
from desktop, I can checkout from gitolite directly
git clone git01:gitolite-admin
Cloning into 'gitolite-admin'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
cat conf/gitolite.conf
repo gitolite-admin
RW+ = pgnd
repo testing
RW+ = @all
i can mod, push, etc,
git clone git01:testing
cd testing
touch git-daemon-export-ok
echo "test1 description" > description
git add .
git commit -m 'initial testing commit' -a
git push origin master
, and changes are correctly reflected @ gitolite server's repo tree.
for cgit web access, uwsgi's cgit config is
/etc/uwsgi/apps-available/cgit.ini
[uwsgi]
master = true
cheap = true
idle = 600
manage-script-name = true
plugins = cgi,logfile
cgi = /srv/www/cgi-bin/cgit/cgit.cgi
in browser, @ cgit site page, I see the CGit UI
https://i.imgur.com/2zhl7ax.png
but there's no repo content, it simply displays
No repositories found
generated by cgit v1.2.1 (git 2.18.1) at 2019-08-13 17:44:46 +0000
iiuc, this is a perm problem.
atm, I see no related errors in
nginx logs
uwsgi logs
systemd journal
what's a likely cause of the "no repositories found"?
^ permalink raw reply [flat|nested] 3+ messages in thread
* "no repositories found": cgit + gitolite + nginx -- git/ssh access OK, web access OK, no errors, but no repos found/displayed?
[not found] ` <CAEZES=9_MqRX6YKE+uyE1CgmTB=mEEPd4u6LLQBo1FZMRgwGEw@mail.gmail.com>
@ 2019-08-14 19:12 ` pgnet.dev
2019-08-15 2:52 ` pgnet.dev
0 siblings, 1 reply; 3+ messages in thread
From: pgnet.dev @ 2019-08-14 19:12 UTC (permalink / raw)
> could you please also provide your cgit config? Also, which user is
> executing cgit
my current config is
cat /etc/cgitrc
virtual-root=/
css=/cgit.css
logo=/cgit.png
cache-size=1000
enable-index-links=1
enable-log-filecount=1
enable-log-linecount=1
root-title=git repositories
robots=noindex, nofollow
mimetype.git=image/git
mimetype.html=text/html
mimetype.jpg=image/jpeg
mimetype.jpeg=image/jpeg
mimetype.pdf=application/pdf
mimetype.png=image/png
mimetype.svg=image/svg+xml
snapshots=tar.gz tar.bz2 tar.xz zip
source-filter=/usr/lib/cgit/filters/syntax-highlighting-EDITED.sh
scan-path=/data/git/gitolite/repositories/
cat /usr/lib/cgit/filters/syntax-highlighting-EDITED.sh | grep -v ^#
BASENAME="$1"
EXTENSION="${BASENAME##*.}"
[ "${BASENAME}" = "${EXTENSION}" ] && EXTENSION=txt
[ -z "${EXTENSION}" ] && EXTENSION=txt
[ "${BASENAME%%.*}" = "Makefile" ] && EXTENSION=mk
exec highlight --force -f -I -O xhtml -S "$EXTENSION" 2>/dev/null
> can he access repositories owned by gitolite?
that was the _intention_, at least, with
> Users/groups are setup as
> > id wwwrun
> uid=30(wwwrun) gid=8(www) groups=8(www),475(gitolite)
> id wwwrun-cgit
> uid=474(wwwrun-cgit) gid=8(www) groups=8(www),475(gitolite)
> id gitolite
> uid=475(gitolite) gid=475(gitolite) groups=475(gitolite)
the systemd units for uwsgi service & socket are templated,
/etc/systemd/system/uwsgi-app at .service
[Unit]
Description=%i uWSGI app
After=syslog.target
[Service]
ExecStart=/usr/sbin/uwsgi \
--ini /etc/uwsgi/apps-available/%i.ini \
--socket /run/uwsgi/%i.sock
User=wwwrun-%i
Group=www
Restart=on-failure
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
/etc/systemd/system/uwsgi-app at .socket
[Unit]
Description=Socket for uWSGI app %i
[Socket]
ListenStream=/run/uwsgi/%i.sock
SocketUser=wwwrun-%i
SocketGroup=www
SocketMode=0660
[Install]
WantedBy=sockets.target
so that, in the case of app == 'cgit', they get enabled/started as
systemctl enable uwsgi-app at cgit.socket
and, uwsgi/cgit execs as
wwwrun-cgit:www
which, i thought, should make it behave with gitolite repos.
if not a bug, it's certainly possible i've missed some config, perm, etc.
^ permalink raw reply [flat|nested] 3+ messages in thread
* "no repositories found": cgit + gitolite + nginx -- git/ssh access OK, web access OK, no errors, but no repos found/displayed?
2019-08-14 19:12 ` pgnet.dev
@ 2019-08-15 2:52 ` pgnet.dev
0 siblings, 0 replies; 3+ messages in thread
From: pgnet.dev @ 2019-08-15 2:52 UTC (permalink / raw)
a number of popular refs, e.g.,
https://wiki.archlinux.org/index.php/Cgit#Using_uwsgi
recommend an nginx config similar to,
location / {
try_files $uri @cgit;
}
location @cgit {
gzip off;
include uwsgi_params;
uwsgi_modifier1 9;
uwsgi_pass unix:/run/uwsgi/cgit.sock;
}
which is what I've been using so far.
reading here,
https://uwsgi-docs.readthedocs.io/en/latest/Nginx.html#hosting-multiple-apps-in-the-same-process-aka-managing-script-name-and-path-info
suggests (?) a script path rewrite issue, though it's not clear to me WHAT's needed.
this post
https://lists.zx2c4.com/pipermail/cgit/2018-April/003784.html
has a working solution.
editing my nginx config,
location / {
- try_files $uri @cgit;
+ try_files $uri /cgit.cgi?url=$uri&$args;
}
- location @cgit {
+ location /cgit.cgi {
+ internal;
gzip off;
include uwsgi_params;
uwsgi_modifier1 9;
uwsgi_pass unix:/run/uwsgi/cgit.sock;
}
now, I see repos/content in the UI; e.g., @
https://cgit.dev.loc/testing.git/diff/
nicely displays
https://i.imgur.com/qCeYHnz.png
if that^^ required rewrite is explicitly/clearly in docs somewhere, I've missed it.
reading @ cgit manpage,
https://git.zx2c4.com/cgit/tree/cgitrc.5.txt#n441
virtual-root::
Url which, if specified, will be used as root for all cgit links. It
will also cause cgit to generate 'virtual urls', i.e. urls like
'/cgit/tree/README' as opposed to '?r=cgit&p=tree&path=README'. Default
value: none.
NOTE: cgit has recently learned how to use PATH_INFO to achieve the
same kind of virtual urls, so this option will probably be deprecated.
suggests that PATH_INFO can (should?) be used to avoid the try/rewrite.
on my sys, nginx's 'uwsgi_params' contains
uwsgi_param PATH_INFO $document_uri;
and, as above, I have
/etc/cgitrc
...
virtual-root=/
...
I haven't yet found the docs for PATH_INFO usage to do so ...
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-08-15 2:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-14 1:48 "no repositories found": cgit + gitolite + nginx -- git/ssh access OK, web access OK, no errors, but no repos found/displayed? pgnet.dev
[not found] ` <CAEZES=9_MqRX6YKE+uyE1CgmTB=mEEPd4u6LLQBo1FZMRgwGEw@mail.gmail.com>
2019-08-14 19:12 ` pgnet.dev
2019-08-15 2:52 ` pgnet.dev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).