рдЯреНрд░рд╛рдХ рдФрд░ рдЙрд╕рдХреЗ рджреЛрд╕реНрдд рдЧрд┐рддреЛрд▓рд╛рдЗрдЯ, рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдФрд░ рдпреВрдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ

рд╣рд░ рдХреЛрдИ рд╢рд╛рдпрдж рдЕрджреНрднреБрдд OpenSource рдкреНрд░реЛрдЬреЗрдХреНрдЯ Trac рдЬрд╛рдирддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреА рддреИрдирд╛рддреА рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдПрдХ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдмрд┐рдЦрд░реА рд╣реБрдИ рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрд░рд╛рдиреА рд╣реИред рдореИрдВ Nginx + UWSGI рдХреЗ рдПрдХ рд╕рдореВрд╣ рдкрд░ Gitolite рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд Trac рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдПрдХ рдЯреИрдореНрдмреЛрд░рд┐рди рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рд╕реА рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ, рдЬреЛ рдЯреНрд░рд╛рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдирд┐рд░реНрджреЗрд╢ рдореВрд▓ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рди рдЬреНрдЮрд╛рди рдФрд░ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рд╣реИред рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдирдП рд╕реНрдерд╛рдкрд┐рдд рдЙрдмрдВрдЯреВ 12.04 рд╡рд┐рддрд░рдг рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рдЕрдиреНрдп рд▓рд┐рдирдХреНрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред

рдЯреНрд░рд╛рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╢реБрд░реБрдЖрдд


рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ Trac рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:

sudo apt-get install python-pip sudo pip install babel sudo pip install "Trac==1.0" 

рдЕрдм рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЛрдХреЗрд╢рди рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:

 sudo adduser --disabled-password --gecos 'Trac' trac sudo addgroup tracsys sudo adduser trac tracsys sudo adduser `whoami` tracsys sudo mkdir -p /var/www/trac sudo trac-admin /var/www/trac initenv sudo chown -R nobody:tracsys /var/www/trac sudo chmod -R g+rwXs /var/www/trac tracd -p 8000 /var/www/trac/ 

Tracsys рд╕рдореВрд╣ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдХрд░, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЬрд┐рдЧреЛрд▓рд┐рдЯ рдФрд░ Nginx + UWSGI рдмрдВрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреЗ рд╕рдВрдЧрдарди рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖред

Nginx рдФрд░ UWSGI рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯрд┐рдВрдЧ


UWSGI рдПрдХ WSGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╣реИред рдЗрд╕рдХреЗ рддрд╣рдд рд╣рдорд╛рд░реЗ Trac рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ WSGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдиреАрдЪреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ /home/trac/wsgi_trac.py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдорд╛рд▓рд┐рдХ рдмрдирд╛ рджреЗрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ Nginx рдФрд░ UWSGI рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Nginx рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорд╛рдирдХ рд╣реИ, рд▓реЗрдХрд┐рди UWSGI рдХреЗ рд▓рд┐рдП рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╣реИрдВред рд╣рдорд╛рд░реЗ WSGI рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ trac рдФрд░ group tracsys рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред Wsgi_trac.nginx рдФрд░ wsgi_trac.uwsgi рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВред

wsgi_trac.py

 import os import sys import trac.web.main sys.stdout=sys.stderr os.environ['TRAC_ENV'] = '/var/www/trac' application = trac.web.main.dispatch_request 

wsgi_trac.nginx

 server { listen 80; server_name trac.local; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5544; } } 

wsgi_trac.uwsgi

 [uwsgi] uid=trac gid=tracsys chmod-socket=777 chown-socket=trac chdir = /home/trac socket = 127.0.0.1:5544 module = wsgi_trac:application processes = 2 master = 1 

рдпрджрд┐ Nginx рдФрд░ / рдпрд╛ UWSGI рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред
 sudo apt-get install nginx uwsgi uwsgi-plugin-python sudo ln -s /home/trac/wsgi_trac.nginx /etc/nginx/sites-enabled/trac.conf sudo ln -s /home/trac/wsgi_trac.uwsgi /etc/uwsgi/apps-enabled/trac.ini sudo service nginx restart sudo service uwsgi restart 


AccountManagerPlugin рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛


Trac 1.0 рд╡рд┐рддрд░рдг рдореЗрдВ рдПрдХ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, AccountManagerPlugin рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдВрдбреЗ рдХреЗ рд╡рд┐рддрд░рдг рдХреА рддрд░рд╣ рдмрдирд╛рдПрдВред рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдХреЙрдкреА рдХрд░реЗрдВ ред рдкреНрд▓рдЧрдЗрдиреНрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рдПрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ / var / www / trac / plugins рд╣реИ ред Trac.ini рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реЗрдВред
 [components] trac.web.auth.LoginModule = disabled acct_mgr.web_ui.LoginModule = enabled acct_mgr.web_ui.RegistrationModule = enabled 

рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HtDigest рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ trac.ini рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ ред
 [account-manager] authentication_url = force_passwd_change = False hash_method = HtDigestHashMethod htdigest_realm = trac htpasswd_hash_type = crypt password_file = /var/www/trac/db/users.htdigest password_store = HtDigestStore persistent_sessions = False refresh_passwd = False user_lock_max_time = 0 verify_email = False 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдЖрдЗрдЯрдо рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рдФрд░ рдЙрд╕реЗ рдкреНрд░рд╢рд╛рд╕рдХ рдирд┐рдпреБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред
 trac-admin /var/www/trac permission add <  > TRAC_ADMIN 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╣реИ, рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдЖрдк рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо рдХрд╛ рд▓рд┐рдВрдХ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдВред рдЖрдк рдЦрд╛рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдкреНрд▓рдЧ-рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ c RegistrationModule рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░рдХреЗ рдкреНрд▓рдЧ-рдЗрди рдкреНрд░рдмрдВрдзрди рдХреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЧрд┐рддреЛрд┐рддрд▓ рдПрдХрддрд╛


Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди Gitolite рдЯреВрд▓ рд╣реИ, рдЬрд┐рд╕реЗ Trac рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рднреА рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:


 sudo apt-get install gitolite sudo adduser --home /home/gitolite --disabled-password --gecos 'Git' git sudo adduser git tracsys sudo su trac cd ~ ssh-keygen -t rsa cp ~/.ssh/id_rsa.pub /tmp/trac.pub exit 

рдЕрдЧрд▓рд╛ рдХрджрдо рдЧрд┐рдЯ рдпреВрдЬрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд┐рдУрд▓рд╛рдЗрдЯ рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдЧрд╛ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ '$ REPO_UMASK = 0077;' рд▓рд╛рдЗрди рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕реЗ '$ REPO_UMASK = 0007?'ред рдпрджрд┐ рд╡рд┐рдо рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдмрд╕ ZZ рджрдмрд╛рдПрдВред рдЖрдк рдлрд╝рд╛рдЗрд▓ /home/gitolite/.gitolite.rc рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдмрд╛рдж рдореЗрдВ рдореБрдЦреМрдЯрд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ рд╕рд╛рде рд╣реА Trac рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рд╕рдорд╛рди рдЕрдзрд┐рдХрд╛рд░ред
 sudo su git cd ~ gl-setup /tmp/trac.pub exit sudo chown -R git:tracsys /home/gitolite/repositories/ sudo chmod -R g+rwXs /home/gitolite/repositories/ 

рдпрд╣ рд╣рдорд╛рд░реЗ Trac рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ Git рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ trac.ini рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ред
 [components] tracopt.versioncontrol.git.* = enabled [trac] repository_type = git 

рдЕрдм рдкреНрд░рд╢рд╛рд╕рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗрдХреНрд╢рди рдореЗрдВ, рдирд╛рдо рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА gitolite /home/gitolite/repositories/testing.git, рдФрд░ рдХрдВрдЯреНрд░реЛрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА / рд╣реЛрдо / gololite / repositories / gitolite-admin.it рдХреЛ gitolite-admin рдирд╛рдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ ред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдЕрдиреБрднрд╛рдЧ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдиреВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рджреЛрдиреЛрдВ рдЙрдкрд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗред

рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╣рдорд╛рд░реЗ рдЯреНрд░рд╛рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреАрдЯреЛрд▓рд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, trac-GitolitePlugin рдкреНрд▓рдЧрдЗрди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЗрд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдкреГрд╖реНрда рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдВрдбреЗ рдХреЗ рд╡рд┐рддрд░рдг рдХреА рддрд░рд╣ рдмрдирд╛рдПрдБред рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ trac.ini рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВред
 [components] trac_gitolite.* = enabled [trac] permission_policies = GitolitePermissionPolicy, AuthzPolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy [trac-gitolite] admin_reponame = gitolite-admin admin_real_reponame = gitolite-admin admin_ssh_path = git@localhost:gitolite-admin.git admin_system_user = trac default_private = True all_includes_anonymous = False 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдирдпрд╛ рдЕрдиреБрднрд╛рдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЧрд┐рдЯреЛрд▓рд┐рдЯ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝ рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ git рдХреНрд▓реЛрди рдХрдорд╛рдВрдб git @ localhost: gitolite-admin.git / tmp / bla-bla рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреНрд░реЗрдХ рдХреЗ рддрд╣рдд рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдерд╛ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреБрдВрдЬреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рдереА, рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдпрд╣ Trac рдФрд░ Git рдХреА рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдПрдХреАрдХрд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, рдпрд╣ рдЯрд┐рдХрдЯ рдХреЛрдб рдХреЛ рд╡рдЪрди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЯрд┐рдХрдЯ рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдорд┐рдЯ рдЬрд┐рд╕рдореЗрдВ "рдХрд░реАрдм # 777" рд▓рд╛рдЗрди рд╣реЛрддреА рд╣реИ, рд╡рд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯрд┐рдХрдЯ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ Trac.ini рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрдореЗрдЯрдЯрд╛рдЗрдХрдкреИрдб рдШрдЯрдХ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред
 [components] tracopt.ticket.commit_updater.* = enabled 

рдЕрдЧрд▓рд╛, рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реБрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / var / www / trac / рд╣реБрдХ рдореЗрдВред рдЗрд╕рдХрд╛ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ Trac рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕реНрдерд╛рди рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
 # config TRAC_ENV = '/var/www/trac' GIT_PATH = '/usr/bin/git' TRAC_ADMIN = '/usr/local/bin/trac-admin' #REPO_NAME = '(default)' # if you are using gitolite or sth similar, you can get the repo name from envir REPO_NAME = os.getenv('GL_REPO') 

рдЧрд┐рдЯреЛрд▓рд┐рдЯ рдХреЗ рдкрд╛рд╕ рд╣реБрдХ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рдареАрдХ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рд╡реЗ рдЙрди рд╕рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ ~ / .ITolite / рд╣реБрдХ / рдкреЛрд╕реНрдЯ-рдкреНрд░рд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
 #!/bin/bash python /var/www/trac/hooks/trac-post-receive-hook-0.12-new-commits-from-all-branches.py 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╣реБрдХ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВред
 sudo su git cd ~/.gitolite/hooks/ chmod 755 post-receive gl-setup 

рдирд┐рд╖реНрдХрд░реНрд╖


рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рдордп рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

Source: https://habr.com/ru/post/In159153/


All Articles