Configuration done in file:
sudo gitlab-ctl reconfigure
GitLab and GitLab CI are configured by setting their relevant options in /etc/gitlab/gitlab.rb. For a complete list of available options, visit the gitlab.rb.template. New installations starting from GitLab 7.6, will have all the options of the template listed in /etc/gitlab/gitlab.rb by default.
If you would rather send application email via an SMTP server instead of via Sendmail, add the following configuration information to /etc/gitlab/gitlab.rb and run gitlab-ctl reconfigure.
in /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 456
gitlab_rails['smtp_user_name'] = "smtp user"
gitlab_rails['smtp_password'] = "smtp password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
If your SMTP server does not like the default ‘From: gitlab@localhost’ you can change the ‘From’ with this setting.
in /etc/gitlab/gitlab.rb
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
To change GitLab CI email configuration (e.g. use SMTP), use gitlab_ci instead of gitlab_rails.
in /etc/gitlab/gitlab.rb
gitlab_ci['gitlab_ci_email_from'] = 'gitlab-ci@example.com'
gitlab_ci['smtp_enable'] = true
gitlab_ci['smtp_address'] = "smtp.server"
The current “stable” distribution of Debian is version 7, codenamed wheezy. It was initially released as version 7.0 on May 4th, 2013 and its latest update, version 7.7, was released on October 18th, 2014.
Hostname: gitlab.gcsww.com
Software Selection
---------------------
remove Debian desktop environment
leave Print server
Add SSH server
remove laptop
apt-get update
apt-get dist-upgrade
apt-get install vim
apt-get install tmux
apt-get install git
apt-get install sudo
adduser craig sudo
git config --global user.name "Your Name Here"
Sets the default name for git to use when you commit
git config --global user.email "your_email@example.com"
Sets the default email for git to use when you commit
ssh-copy-id -i ~/.ssh/id_rsa.pub $host
wget https://downloads-packages.s3.amazonaws.com/debian-7.6/gitlab_7.5.3-omnibus.5.2.1.ci-1_amd64.deb
sudo apt-get install openssh-server
sudo apt-get install postfix # Select 'Internet Site', using sendmail instead also works, exim has problems
Suggested packages:
postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin dovecot-common resolvconf postfix-cdb ufw postfix-doc
The following packages will be REMOVED:
exim4 exim4-base exim4-config exim4-daemon-light
The following NEW packages will be installed:
postfix
Internet site:
│ Mail is sent and received directly using SMTP.
System mail name: │
│ │
│ gitlab.gcsww.com
sudo dpkg -i gitlab_7.5.3-omnibus.5.2.1.ci-1_amd64.deb
Setting up gitlab (7.5.3-omnibus.5.2.1.ci-1) ...
Thank you for installing GitLab!
Configure and start GitLab by running the following command:
sudo gitlab-ctl reconfigure
GitLab should be reachable at gitlab.gcsww.com
Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
And running reconfigure again.
gitlab-ctl reconfigure
reconfigure failed the first time. Edit /etc/gitlab/gitlab.rb Also, set the email from.
diff /etc/gitlab/gitlab.rb.1 /etc/gitlab/gitlab.rb
2c2,4
< external_url 'gitlab.gcsww.com'
---
> external_url 'http://gitlab.gcsww.com'
> gitlab_rails['gitlab_email_from'] = 'gitlab@gcsww.com'
2c2
< external_url 'gitlab.gcsww.com'
---
> external_url 'http://gitlab.gcsww.com'
Browse to the hostname and login
Username: root
Password: 5iveL!fe
Change password.
Need to configure postfix
$ hostname --fqdn
gitlab.gcsww.com
$ postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = gitlab.gcsww.com, localhost.gcsww.com, , localhost
myhostname = gitlab.gcsww.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
A null client is a machine that can only send mail. It receives no mail from the network, and it does not deliver any mail locally. A null client typically uses POP, IMAP or NFS for mailbox access.
Translation:
Line 6: Disable local mail delivery. All mail goes to the mail server as specified in line 4.
Edit /etc/postfix/main.cf
/etc/postfix# diff main.cf.1 main.cf
33,35c33,35
< myorigin = /etc/mailname
< mydestination = gitlab.gcsww.com, localhost.gcsww.com, , localhost
< relayhost =
---
> myorigin = $mydomain
> mydestination =
> relayhost = [mail.coot.net]:26
40c40,54
< inet_interfaces = all
---
> inet_interfaces = loopback-only
>
> # see - https://www.linode.com/docs/email/postfix/postfix-smtp-debian7
> # enable SASL authentication
> smtp_sasl_auth_enable = yes
> # disallow methods that allow anonymous authentication.
> smtp_sasl_security_options = noanonymous
> # where to find sasl_passwd
> smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
>
> # Enable STARTTLS encryption
> smtp_use_tls = yes
> # where to find CA certificates
> smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
>
/etc/postfix/sasl_passwd
[mail.coot.net]:26 craig@coot.net:mypassword
postmap /etc/postfix/sasl_passwd
If all went well, you should have a new file named sasl_passwd.db in the /etc/postfix/ directory.
The /etc/postfix/sasl_passwd and the /etc/postfix/sasl_passwd.db files created in the previous steps contain your SMTP credentials in plain text.
For security reasons, you should change their permissions so that only the root user can read or write to the file. Run the following commands to change the ownership to root and update the permissions for the two files:
Change permissions of sasl_passwd and sasl_passwd.db
chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
echo "body of your email" | mail -s "This is a Subject" -a "From: you@example.com" recipient@elsewhere.com
10.10.9.175
http://gitlab.gcsww.com/cootcraig/game_justin_craig_20141209.git
http://10.10.9.175/cootcraig/game_justin_craig_20141209.git
git remote set-url origin http://10.10.9.175/cootcraig/game_justin_craig_20141209.git
dhcp ip: 10.10.9.162
gitlab.gcsww.local 10.10.22.6
WhaleBlubber - Self-hosted GitLab Server for Private Revision Control
Installation takes 5 minutes, and configuration is very easy since they include links to FAQs and basic stuff you should know.
Configuring the email can get tricky, so here is the basic stuff:
Be careful with the host and port, since it sets the ones where the machine installs by default, but if you then assign a static IP you must change them manually.
Install a Debian 7 virtualbox guest to host the company GIT repositories.
The current “stable” distribution of Debian is version 7, codenamed wheezy. It was initially released as version 7.0 on May 4th, 2013 and its latest update, version 7.7, was released on October 18th, 2014.
Hostname: gogs.gcsww.local
Software Selection
---------------------
remove Debian desktop environment
leave Print server
Add SSH server
remove laptop
apt-get update
apt-get dist-upgrade
apt-get install vim
apt-get install tmux
apt-get install git
apt-get install sudo
adduser craig sudo
Step 2: Copy the public key to remote-host using ssh-copy-id
jsmith@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
jsmith@remote-host's password:
Now try logging into the machine, with "ssh 'remote-host'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.88.183
ssh 192.168.88.183
Note: ssh-copy-id appends the keys to the remote-host’s .ssh/authorized_key.
ssh 192.168.88.183
https support was missing from apt-get after install
apt-get install apt-transport-https
Here is how to install the package on a Debian 7 Wheezy 64bits server:
wget -qO - https://deb.packager.io/key | sudo apt-key add -
echo "deb https://deb.packager.io/gh/pkgr/gogs wheezy pkgr" | sudo tee /etc/apt/sources.list.d/gogs.list
sudo apt-get update
sudo apt-get install gogs
The following NEW packages will be installed:
gogs libevent-core-2.0-5 libevent-extra-2.0-5 libmysqlclient18 libpq5 libreadline5 libxslt1.1 mysql-common
Setting up gogs (0.5.8-1418206274.9ee80e3.wheezy) ...
Scaling up...
update-rc.d: using dependency based boot sequencing
update-rc.d: using dependency based boot sequencing
update-rc.d: using dependency based boot sequencing
gogs-web-1 started.
--> done.
APP_NAME="gogs"
MYSQL_PASSWORD="change_me"
HOSTNAME="example.com"
debconf-set-selections <<CONFIG
mysql-server-5.5 mysql-server/root_password password ${MYSQL_PASSWORD}
mysql-server-5.5 mysql-server/root_password_again password ${MYSQL_PASSWORD}
CONFIG
APP_NAME="gogs"
MYSQL_PASSWORD="change_me"
HOSTNAME="example.com"
apt-get install -y --force-yes mysql-server
The following NEW packages will be installed:
libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl mysql-client-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5
APP_NAME="gogs"
MYSQL_PASSWORD="change_me"
HOSTNAME="example.com"
mysql -uroot -p${MYSQL_PASSWORD} -e "create database if not exists ${APP_NAME};"
apt-get install -y nginx
The following NEW packages will be installed:
nginx nginx-common nginx-full
APP_NAME="gogs"
MYSQL_PASSWORD="change_me"
HOSTNAME="example.com"
cat > /etc/nginx/sites-available/default <<EOF
server {
listen 80;
server_name ${HOSTNAME} "";
location / {
proxy_pass http://localhost:6000;
}
}
EOF
sudo service nginx restart
Now, access http://${HOSTNAME} and finish the installation process. Easy!
http://10.10.9.186/craig/game_justin_craig_20141209
git remote add origin http://localhost:6000/craig/game_justin_craig_20141209.git
git push -u origin master
was
origin /media/gcs3f/GIT/game_justin_craig_20141209.git
git remote set-url origin http://10.10.9.186/craig/game_justin_craig_20141209
ssh://[user@]host.xz[:port]/path/to/repo.git/
gogs@localhost:craig/game_justin_craig_20141209.git
git remote set-url origin craig@10.10.9.186:craig/game_justin_craig_20141209.git
update-rc.d Cheat Sheet - James Coyle
service --status-all
...
[ ? ] gogs
[ ? ] gogs-web
[ - ] gogs-web-1
...
insserv is a low level tool used by update-rc.d which enables an installed system init script (boot script) by reading the comment header of the script, e.g.:
The dependency-based boot sequencing introduced with Debian 6.0 is now always enabled, including for users of file-rc.
For optimal sequencing, all init.d scripts should declare their dependencies in an LSB header. This is already the case for scripts shipped in Debian, but users should check their local scripts and consider adding that information.
For more information on this feature refer to the information available in /usr/share/doc/insserv/README.Debian.
Starting with Debian 6.0, the insserv command is used instead, if dependency-based booting is enabled:
insserv mydaemon
Where mydaemon is an executable init script placed in /etc/init.d. insserv will produce no output if everything went OK. Examine the error code in $? if you want to be sure.
Both the old and the new way requires an init script to be present in /etc/init.d. For dependency-based booting, the script needs to be an LSB init script.
/etc/init.d/gogs
/etc/init.d/gogs-web
/etc/init.d/gogs-web-1
To see all the files the package installed onto your system, do this:
dpkg-query -L
/opt/gogs/conf/app.ini
## migrate existing
* [Moving A Git Repository To A New Server - Nik Sumeiko](http://www.smashingmagazine.com/2014/05/19/moving-git-repository-new-server/)