Compare commits
49 Commits
Author | SHA1 | Date |
---|---|---|
AJ ONeal | 06586de3bc | |
Josh Mudge | 56cf425e46 | |
Josh Mudge | ad14316950 | |
Josh Mudge | ece1e705b0 | |
Josh Mudge | 09e97e86f3 | |
AJ ONeal | 5de77f0095 | |
AJ ONeal | ffe1985c5c | |
AJ ONeal | 7b0570934a | |
AJ ONeal | 3ee76dbb7e | |
Josh Mudge | 406b1b719b | |
AJ ONeal | 0457140be4 | |
Josh Mudge | 90d27beaf6 | |
Josh Mudge | f389c2cad2 | |
Josh Mudge | dcb820e844 | |
Josh Mudge | fdd890d441 | |
Josh Mudge | 9a00313a6a | |
Josh Mudge | 03bd5b5011 | |
Josh Mudge | c1a0669e6e | |
Josh Mudge | c5d75c1016 | |
Josh Mudge | 7806ec9773 | |
Josh Mudge | fb0d107416 | |
Josh Mudge | f421b83487 | |
Josh Mudge | 20fb4b7dfe | |
Josh Mudge | 91f4ecd3f8 | |
Josh Mudge | 8232bba348 | |
Josh Mudge | f1aad8be59 | |
Josh Mudge | 735958f8f9 | |
Josh Mudge | 7cb52884fc | |
Josh Mudge | 6f2ca3d312 | |
Josh Mudge | eb8dfc1af3 | |
Josh Mudge | 99f7a27ea2 | |
AJ ONeal | d75ad1a205 | |
AJ ONeal | 22937eb9b7 | |
AJ ONeal | 7a457b6a35 | |
AJ ONeal | 7b0b4f819a | |
AJ ONeal | 764458a74f | |
AJ ONeal | 902eaa71e2 | |
AJ ONeal | 6728663a8b | |
AJ ONeal | 09617dc377 | |
AJ ONeal | 8a3ebf85d2 | |
AJ ONeal | fbc6ee7443 | |
AJ ONeal | c04c9ea296 | |
AJ ONeal | 0ecb2ee707 | |
AJ ONeal | 35a23e3aa4 | |
AJ ONeal | 7d8ebc4daf | |
AJ ONeal | b9307b6531 | |
AJ ONeal | a86e981db5 | |
AJ ONeal | e4c7bbdc54 | |
AJ ONeal | c28dd2a93b |
120
README.md
120
README.md
|
@ -1,44 +1,130 @@
|
|||
# Gitea Installer
|
||||
|
||||
Installs Gitea as a systemd service
|
||||
Installs [Gitea](https://gitea.io) (formerly Gogs) as a systemd service
|
||||
|
||||
## Linux Install Script
|
||||
# Easy Install (Linux)
|
||||
|
||||
You can download and run the installer script:
|
||||
You can download and run the installer script using this command:
|
||||
|
||||
```bash
|
||||
wget -O install-gitea.bash https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/master/install.bash
|
||||
bash install-gitea.bash
|
||||
```
|
||||
`curl -fsSL https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/install.bash | bash`
|
||||
|
||||
<a href="https://youtu.be/dTvTBlzKqgg" target="_blank"><img title="How to install Gitea" alt="a screencast of me installing gitea and migrating one of my github repos" src="https://i.imgur.com/e4CZdBu.png"></a>
|
||||
|
||||
## Specific Versions
|
||||
|
||||
You can pick a specific version to install. For example, if you were nostalgic for 1.2.0, you could run:
|
||||
|
||||
`curl -fsSL https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/install.bash | bash -s version 1.2.0`
|
||||
|
||||
# After Installing
|
||||
|
||||
Once you have gitea installed and running you must choose
|
||||
which database to use, certain gitea paths, an admin user, etc.
|
||||
|
||||
Go to: http://localhost:3000/
|
||||
|
||||
You should see these fields:
|
||||
|
||||
*The following is for basic usage with this script, for more advance usage see: [https://docs.gitea.io/en-us/customizing-gitea/](https://docs.gitea.io/en-us/customizing-gitea/)*
|
||||
|
||||
`Database Type:` Use SQLite3 for the database.
|
||||
|
||||
`Path:` Leave this alone.
|
||||
|
||||
`Application Name:` Give your Gitea server a fancy name.
|
||||
|
||||
`Repository Root Path:` Leave this alone.
|
||||
|
||||
`LFS Root Path:` Leave this alone.
|
||||
|
||||
`Run User:` Leave this alone.
|
||||
|
||||
`Domain:` Replace this with your domain name for the server.
|
||||
|
||||
`SSH Port:` Leave this alone unless you want a custom port for SSH.
|
||||
|
||||
`HTTP Port:` Change this if you want Gitea to serve on a different port. You don't usually need to, Gitea is usually used behind a web server.
|
||||
|
||||
`Application URL:` Enter the full URL for your Gitea instance, like https://example.com/
|
||||
|
||||
`Log Path:` Leave this alone.
|
||||
|
||||
Click on "Admin Account Settings" to setup your user account and click "Install Gitea" when you are done.
|
||||
|
||||
## Manual Install
|
||||
|
||||
Or manually install by reading these instructions and following along:
|
||||
|
||||
```bash
|
||||
# Create a 'gitea' user and group with the home /opt/gitea, no password (because it's a system user) and no GECOS
|
||||
### Create a 'gitea' user and group with the home /opt/gitea, no password (because it's a system user) and no GECOS
|
||||
sudo adduser gitea --home /opt/gitea --disabled-password --gecos ''
|
||||
|
||||
# Make some other potentially useful directories for that user/group
|
||||
### Make some other potentially useful directories for that user/group
|
||||
sudo mkdir -p /opt/gitea/ /var/log/gitea
|
||||
sudo chown -R gitea:gitea /opt/gitea/ /var/log/gitea
|
||||
|
||||
# Download and install gitea
|
||||
sudo wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.0.1/gitea-1.0.1-linux-amd64
|
||||
### Download and install gitea. Replace "amd64" with "i386" for 32 bit x86 or "arm-7" for ARMv7 and "arm-6" for ARMv6.
|
||||
sudo wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.4.1/gitea-1.4.1-linux-amd64
|
||||
sudo chmod +x /opt/gitea/gitea
|
||||
|
||||
# Download and install the gitea.service for systemd
|
||||
### Download and install the gitea.service for systemd
|
||||
sudo wget -O /etc/systemd/system/gitea.service https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/master/dist/etc/systemd/system/gitea.service
|
||||
|
||||
# Start gitea
|
||||
### Start gitea
|
||||
sudo systemctl restart gitea
|
||||
```
|
||||
|
||||
## Gitea Web Setup (post install)
|
||||
Then see the post-install instruction above.
|
||||
|
||||
Once you've gitea installed and running you must choose
|
||||
which database to use, certain gitea paths, an admin user, etc.
|
||||
## Customize Gitea
|
||||
|
||||
> http://localhost:3000/
|
||||
```
|
||||
/opt/gitea/custom/conf/app.ini
|
||||
|
||||
https://github.com/go-gitea/gitea/tree/master/custom/conf/app.ini.sample
|
||||
```
|
||||
|
||||
Once a reverse proxy is set up you can change the `HTTP_ADDR` from the default (world accessible) to localhost-only.
|
||||
|
||||
```
|
||||
HTTP_ADDR = localhost
|
||||
```
|
||||
|
||||
## Customize Gitea Theme
|
||||
|
||||
All overrides to the existing theme can be placed in the `custom/public` and `custom/templates` folders.
|
||||
|
||||
* Change Logo
|
||||
* Change Landing Page
|
||||
* Google Analytics
|
||||
|
||||
```
|
||||
/opt/gitea/custom/public
|
||||
/opt/gitea/custom/templates
|
||||
|
||||
/opt/gitea/custom/public/img/favicon.png # 16x16 logo in tab
|
||||
/opt/gitea/custom/public/img/gitea-sm.png # 120x120 logo on all pages
|
||||
/opt/gitea/custom/public/img/gitea-sm.png # 880x880 logo on landing page
|
||||
|
||||
/opt/gitea/custom/templates/home.tmpl # The landing page
|
||||
/opt/gitea/custom/templates/base/head.tmpl # Google Analytics, Login with Github
|
||||
```
|
||||
|
||||
* [Login with Github](https://git.coolaj86.com/coolaj86/gitea-installer.sh/src/tag/v1.0.0/custom/templates/base/head.tmpl#L277)
|
||||
|
||||
For many items, such as the logo, you can simply right-click "inspect" to discover the location. For example, the small logo is `/img/gitea-sm.png` or `/opt/gitea/custom/public/img/gitea-sm.png`.
|
||||
|
||||
You can find more information about customization and templates in the docs and on github:
|
||||
|
||||
* https://docs.gitea.io/en-us/customizing-gitea/
|
||||
* https://github.com/go-gitea/gitea/tree/master/templates/
|
||||
|
||||
# Troubleshooting systemd
|
||||
|
||||
See [Troubleshooting systemd](https://git.coolaj86.com/coolaj86/service-installer.sh/src/master/README.md#troubleshooting-systemd)
|
||||
|
||||
# Removing Gitea
|
||||
|
||||
Run this command to uninstall Gitea: (THIS WILL REMOVE ALL DATA if you are using SQLite!)
|
||||
|
||||
`curl -fsSL https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/remove.bash | bash`
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
APP_NAME = CoolAJ86 on GIT
|
||||
DESCRIPTION = All Neo-Luddites and Lv. 99 Code Whisperers Welcome
|
||||
RUN_USER = gitea
|
||||
RUN_MODE = prod
|
||||
|
||||
[database]
|
||||
DB_TYPE = sqlite3
|
||||
HOST =
|
||||
NAME =
|
||||
USER =
|
||||
PASSWD =
|
||||
SSL_MODE = disable
|
||||
PATH = /opt/gitea@git.coolaj86.com/data/gitea.db
|
||||
|
||||
[repository]
|
||||
ROOT = /srv/gitea@git.coolaj86.com/gitea-repositories
|
||||
|
||||
[server]
|
||||
SSH_DOMAIN = git.coolaj86.com
|
||||
HTTP_ADDR = localhost
|
||||
HTTP_PORT = 3000
|
||||
ROOT_URL = https://git.coolaj86.com/
|
||||
DISABLE_SSH = false
|
||||
SSH_PORT = 22042
|
||||
OFFLINE_MODE = false
|
||||
|
||||
[mailer]
|
||||
ENABLED = true
|
||||
HOST = smtp.mailgun.org:587
|
||||
FROM = gitea@coolaj86.com
|
||||
USER = gitea@coolaj86.com
|
||||
PASSWD = 00000000000000000000000000000000
|
||||
|
||||
[service]
|
||||
REGISTER_EMAIL_CONFIRM = false
|
||||
ENABLE_NOTIFY_MAIL = true
|
||||
DISABLE_REGISTRATION = false
|
||||
ENABLE_CAPTCHA = true
|
||||
REQUIRE_SIGNIN_VIEW = false
|
||||
|
||||
[picture]
|
||||
DISABLE_GRAVATAR = false
|
||||
ENABLE_FEDERATED_AVATAR = true
|
||||
|
||||
[session]
|
||||
PROVIDER = file
|
||||
|
||||
[log]
|
||||
MODE = file
|
||||
LEVEL = Info
|
||||
ROOT_PATH = /opt/gitea@git.coolaj86.com/log
|
||||
|
||||
[security]
|
||||
INSTALL_LOCK = true
|
||||
SECRET_KEY = xxxxxxxxxx
|
||||
INTERNAL_TOKEN = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1 @@
|
|||
favicon.png
|
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
After Width: | Height: | Size: 8.7 KiB |
|
@ -0,0 +1,104 @@
|
|||
{{/*
|
||||
<html>
|
||||
<body>
|
||||
<div>
|
||||
*/}}
|
||||
|
||||
{{template "custom/body_inner_post" .}}
|
||||
|
||||
</div>
|
||||
|
||||
{{template "custom/body_outer_post" .}}
|
||||
|
||||
<footer>
|
||||
<div class="ui container">
|
||||
<div class="ui left">
|
||||
© AJ ONeal, founder of <a target="_blank" href="https://ppl.family">ppl :)</a>
|
||||
and <a target="_blank" href="https://dapliefounder.com">Daplie</a><a target="_blank" href="https://dap-lies.com">.</a>
|
||||
</div>
|
||||
<div class="ui right">
|
||||
{{if .ShowFooterBranding}}
|
||||
<a target="_blank" rel="noopener" href="https://github.com/go-gitea/gitea"><i class="fa fa-github-square"></i><span class="sr-only">GitHub</span></a>
|
||||
{{end}}
|
||||
<div class="ui language bottom floating slide up dropdown link item">
|
||||
<i class="world icon"></i>
|
||||
<div class="text">{{.LangName}}</div>
|
||||
<div class="menu">
|
||||
{{range .AllLangs}}
|
||||
<a class="item {{if eq $.Lang .Lang}}active selected{{end}}" href="{{if eq $.Lang .Lang}}#{{else}}{{$.Link}}?lang={{.Lang}}{{end}}">{{.Name}}</a>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
| Powered by <a target="_blank" rel="noopener" href="https://gitea.io">Gitea</a> {{if (or .ShowFooterVersion .PageIsAdmin)}}: v{{AppVer}}{{end}}
|
||||
| {{if (or .ShowFooterVersion .PageIsAdmin)}}<span class="version">{{GoVer}}</span>{{end}}
|
||||
| {{if ShowFooterTemplateLoadTime}}{{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong> {{.i18n.Tr "template"}}: <strong>{{call .TmplLoadTimes}}</strong>{{end}}
|
||||
| <a href="{{AppSubUrl}}/api/swagger">API</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/jquery/jquery.min.js"></script>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js"></script>
|
||||
{{if .RequireSimpleMDE}}
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/simplemde/simplemde.min.js"></script>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/codemirror/addon/mode/loadmode.js"></script>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/codemirror/mode/meta.js"></script>
|
||||
<script>
|
||||
CodeMirror.modeURL = "{{AppSubUrl}}/vendor/plugins/codemirror/mode/%N/%N.js";
|
||||
</script>
|
||||
{{end}}
|
||||
{{if .RequireGitGraph}}
|
||||
<!-- graph -->
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/gitgraph/gitgraph.js"></script>
|
||||
<script src="{{AppSubUrl}}/js/draw.js"></script>
|
||||
{{end}}
|
||||
|
||||
<!-- Third-party libraries -->
|
||||
{{if .RequireHighlightJS}}
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/highlight/highlight.pack.js"></script>
|
||||
{{end}}
|
||||
{{if .RequireMinicolors}}
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js"></script>
|
||||
{{end}}
|
||||
{{if .RequireDatetimepicker}}
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js"></script>
|
||||
{{end}}
|
||||
{{if .RequireDropzone}}
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/dropzone/dropzone.js"></script>
|
||||
{{end}}
|
||||
{{if .RequireTribute}}
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/tribute/tribute.min.js"></script>
|
||||
|
||||
{{if .Assignees}}
|
||||
<script>
|
||||
var issuesTribute = new Tribute({
|
||||
values: [
|
||||
{{ range .Assignees }}
|
||||
{key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
|
||||
name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.RelAvatarLink}}'},
|
||||
{{ end }}
|
||||
],
|
||||
noMatchTemplate: function () { return null },
|
||||
menuItemTemplate: function (item) {
|
||||
var user = item.original;
|
||||
var itemStr = '<img src="' + user.avatar + '"/><span class="name">' + user.name + '</span>';
|
||||
if (user.fullname && user.fullname != '') {
|
||||
itemStr += '<span class="fullname">' + user.fullname + '</span>';
|
||||
}
|
||||
return itemStr;
|
||||
}
|
||||
})
|
||||
issuesTribute.attach(document.getElementById('content'))
|
||||
</script>
|
||||
{{end}}
|
||||
{{end}}
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/autolink/autolink.js"></script>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/emojify/emojify.min.js"></script>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/clipboard/clipboard.min.js"></script>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/vue/vue.min.js"></script>
|
||||
|
||||
<!-- JavaScript -->
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/semantic/semantic.min.js"></script>
|
||||
<script src="{{AppSubUrl}}/js/index.js?v={{MD5 AppVer}}"></script>
|
||||
{{template "custom/footer" .}}
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,290 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head data-suburl="{{AppSubUrl}}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
|
||||
<meta name="theme-color" content="{{ThemeColorMetaTag}}">
|
||||
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" />
|
||||
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}" />
|
||||
<meta name="keywords" content="{{MetaKeywords}}">
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<meta name="_csrf" content="{{.CsrfToken}}" />
|
||||
<meta name="_suburl" content="{{AppSubUrl}}" />
|
||||
{{if .IsSigned}}
|
||||
<meta name="_uid" content="{{.SignedUser.ID}}" />
|
||||
{{end}}
|
||||
{{if .ContextUser}}
|
||||
<meta name="_context_uid" content="{{.ContextUser.ID}}" />
|
||||
{{end}}
|
||||
{{if .SearchLimit}}
|
||||
<meta name="_search_limit" content="{{.SearchLimit}}" />
|
||||
{{end}}
|
||||
{{if .GoGetImport}}
|
||||
<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">
|
||||
<meta name="go-source" content="{{.GoGetImport}} _ {{.GoDocDirectory}} {{.GoDocFile}}">
|
||||
{{end}}
|
||||
|
||||
<script>
|
||||
{{SafeJS `/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this page.
|
||||
|
||||
Copyright (c) 2016 The Gitea Authors
|
||||
Copyright (c) 2015 The Gogs Authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
---
|
||||
Licensing information for additional javascript libraries can be found at:
|
||||
{{AppSubUrl}}/vendor/librejs.html
|
||||
|
||||
@licend The above is the entire license notice
|
||||
for the JavaScript code in this page.
|
||||
*/`}}
|
||||
</script>
|
||||
|
||||
<link rel="shortcut icon" href="{{AppSubUrl}}/img/favicon.png" />
|
||||
<link rel="mask-icon" href="{{AppSubUrl}}/img/gitea-safari.svg" color="#609926">
|
||||
<link rel="preload" href="{{AppSubUrl}}/vendor/assets/font-awesome/css/font-awesome.min.css" as="style" onload="this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="{{AppSubUrl}}/vendor/assets/font-awesome/css/font-awesome.min.css"></noscript>
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/assets/octicons/octicons.min.css">
|
||||
|
||||
{{if .RequireSimpleMDE}}
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/simplemde/simplemde.min.css">
|
||||
{{end}}
|
||||
|
||||
{{if .RequireGitGraph}}
|
||||
<!-- graph -->
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/gitgraph/gitgraph.css">
|
||||
{{end}}
|
||||
|
||||
{{if .RequireTribute}}
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/tribute/tribute.css">
|
||||
{{end}}
|
||||
|
||||
<!-- Stylesheet -->
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/semantic/semantic.min.css">
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/css/index.css?v={{MD5 AppVer}}">
|
||||
<noscript>
|
||||
<style>
|
||||
.dropdown:hover > .menu { display: block; }
|
||||
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
|
||||
</style>
|
||||
</noscript>
|
||||
|
||||
{{if .RequireHighlightJS}}
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/highlight/github.css">
|
||||
{{end}}
|
||||
{{if .RequireMinicolors}}
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css">
|
||||
{{end}}
|
||||
{{if .RequireDatetimepicker}}
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.css">
|
||||
{{end}}
|
||||
{{if .RequireDropzone}}
|
||||
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/dropzone/dropzone.css">
|
||||
{{end}}
|
||||
<style class="list-search-style"></style>
|
||||
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/cssrelpreload/loadCSS.min.js"></script>
|
||||
<script src="{{AppSubUrl}}/vendor/plugins/cssrelpreload/cssrelpreload.min.js"></script>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-18902063-3"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-18902063-3');
|
||||
</script>
|
||||
{{if .PageIsUserProfile}}
|
||||
<meta property="og:title" content="{{.Owner.Name}}" />
|
||||
<meta property="og:type" content="profile" />
|
||||
<meta property="og:image" content="{{.Owner.AvatarLink}}" />
|
||||
<meta property="og:url" content="{{.Owner.HTMLURL}}" />
|
||||
<meta property="og:site_name" content="{{AppName}}" />
|
||||
{{else if .Repository}}
|
||||
<meta property="og:title" content="{{.Repository.Name}}" />
|
||||
<meta property="og:type" content="object" />
|
||||
<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
|
||||
<meta property="og:url" content="{{.Repository.HTMLURL}}" />
|
||||
{{if .Repository.Description}}
|
||||
<meta property="og:description" content="{{.Repository.Description}}" />
|
||||
{{end}}
|
||||
<meta property="og:site_name" content="{{AppName}}" />
|
||||
{{else}}
|
||||
<meta property="og:title" content="{{AppName}}">
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="{{AppSubUrl}}/img/gitea-lg.png" />
|
||||
<meta property="og:url" content="{{AppUrl}}" />
|
||||
<meta property="og:description" content="{{MetaDescription}}">
|
||||
{{end}}
|
||||
{{template "custom/header" .}}
|
||||
</head>
|
||||
<body>
|
||||
{{template "custom/body_outer_pre" .}}
|
||||
|
||||
<div class="full height">
|
||||
<noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
|
||||
|
||||
{{template "custom/body_inner_pre" .}}
|
||||
|
||||
{{if not .PageIsInstall}}
|
||||
<div class="ui top secondary stackable main menu following bar light">
|
||||
<div class="ui container" id="navbar">
|
||||
<div class="item brand" style="justify-content: space-between;">
|
||||
<a href="{{AppSubUrl}}/" href="{{AppSubUrl}}/">
|
||||
<img class="ui mini image" src="{{AppSubUrl}}/img/gitea-sm.png">
|
||||
</a>
|
||||
<div class="ui basic icon button mobile-only" id="navbar-expand-toggle">
|
||||
<i class="sidebar icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{if .IsSigned}}
|
||||
<a class="item{{if .PageIsDashboard}} active{{end}}" href="{{AppSubUrl}}/">{{.i18n.Tr "dashboard"}}</a>
|
||||
<a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubUrl}}/issues">{{.i18n.Tr "issues"}}</a>
|
||||
<a class="item{{if .PageIsPulls}} active{{end}}" href="{{AppSubUrl}}/pulls">{{.i18n.Tr "pull_requests"}}</a>
|
||||
{{else}}
|
||||
<a class="item{{if .PageIsHome}} active{{end}}" href="{{AppSubUrl}}/">{{.i18n.Tr "home"}}</a>
|
||||
{{end}}
|
||||
|
||||
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.i18n.Tr "explore"}}</a>
|
||||
|
||||
{{template "custom/extra_links" .}}
|
||||
|
||||
{{/*
|
||||
<div class="item">
|
||||
<div class="ui icon input">
|
||||
<input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}">
|
||||
<i class="search icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
*/}}
|
||||
|
||||
{{if .IsSigned}}
|
||||
<div class="right stackable menu">
|
||||
<a href="{{AppSubUrl}}/notifications" class="item poping up" data-content='{{.i18n.Tr "notifications"}}' data-variation="tiny inverted">
|
||||
<span class="text">
|
||||
<i class="fitted octicon octicon-inbox"></i>
|
||||
<span class="sr-mobile-only">{{.i18n.Tr "notifications"}}</span>
|
||||
|
||||
{{if .NotificationUnreadCount}}
|
||||
<span class="ui red label">
|
||||
{{.NotificationUnreadCount}}
|
||||
</span>
|
||||
{{end}}
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<div class="ui dropdown jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
|
||||
<span class="text">
|
||||
<i class="fitted octicon octicon-plus"></i>
|
||||
<span class="sr-mobile-only">{{.i18n.Tr "create_new"}}</span>
|
||||
<i class="fitted octicon octicon-triangle-down not-mobile"></i>
|
||||
</span>
|
||||
<div class="menu">
|
||||
<a class="item" href="{{AppSubUrl}}/repo/create">
|
||||
<i class="fitted octicon octicon-plus"></i> {{.i18n.Tr "new_repo"}}
|
||||
</a>
|
||||
<a class="item" href="{{AppSubUrl}}/repo/migrate">
|
||||
<i class="fitted octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
|
||||
</a>
|
||||
{{if .SignedUser.CanCreateOrganization}}
|
||||
<a class="item" href="{{AppSubUrl}}/org/create">
|
||||
<i class="fitted octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
|
||||
</a>
|
||||
{{end}}
|
||||
</div><!-- end content create new menu -->
|
||||
</div><!-- end dropdown menu create new -->
|
||||
|
||||
<div class="ui dropdown jump item poping up" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}" data-variation="tiny inverted">
|
||||
<span class="text">
|
||||
<img class="ui tiny avatar image" src="{{.SignedUser.RelAvatarLink}}">
|
||||
<span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
|
||||
<span class="mobile-only">{{.SignedUser.Name}}</span>
|
||||
<i class="fitted octicon octicon-triangle-down not-mobile" tabindex="-1"></i>
|
||||
</span>
|
||||
<div class="menu" tabindex="-1">
|
||||
<div class="ui header">
|
||||
{{.i18n.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
<a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}">
|
||||
<i class="octicon octicon-person"></i>
|
||||
{{.i18n.Tr "your_profile"}}<!-- Your profile -->
|
||||
</a>
|
||||
<a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}?tab=stars">
|
||||
<i class="octicon octicon-star"></i>
|
||||
{{.i18n.Tr "your_starred"}}
|
||||
</a>
|
||||
<a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubUrl}}/user/settings">
|
||||
<i class="octicon octicon-settings"></i>
|
||||
{{.i18n.Tr "your_settings"}}<!-- Your settings -->
|
||||
</a>
|
||||
<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">
|
||||
<i class="octicon octicon-question"></i>
|
||||
{{.i18n.Tr "help"}}<!-- Help -->
|
||||
</a>
|
||||
{{if .IsAdmin}}
|
||||
<div class="divider"></div>
|
||||
|
||||
<a class="{{if .PageIsAdmin}}active{{end}} item" href="{{AppSubUrl}}/admin">
|
||||
<i class="icon settings"></i>
|
||||
{{.i18n.Tr "admin_panel"}}<!-- Admin Panel -->
|
||||
</a>
|
||||
{{end}}
|
||||
|
||||
<div class="divider"></div>
|
||||
<a class="item" href="{{AppSubUrl}}/user/logout">
|
||||
<i class="octicon octicon-sign-out"></i>
|
||||
{{.i18n.Tr "sign_out"}}<!-- Sign Out -->
|
||||
</a>
|
||||
</div><!-- end content avatar menu -->
|
||||
</div><!-- end dropdown avatar menu -->
|
||||
</div><!-- end signed user right menu -->
|
||||
|
||||
{{else}}
|
||||
|
||||
<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">{{.i18n.Tr "help"}}</a>
|
||||
<div class="right stackable menu">
|
||||
{{if .ShowRegistrationButton}}
|
||||
<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
|
||||
<i class="octicon octicon-person"></i> {{.i18n.Tr "register"}}
|
||||
</a>
|
||||
{{end}}
|
||||
<a class="item{{if .PageIsSignIn}} active{{end}}" href="{{AppSubUrl}}/user/login?redirect_to={{.Link}}">
|
||||
<i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}
|
||||
</a>
|
||||
<a class="item" href="{{AppSubUrl}}/user/oauth2/GitHub?redirect_to={{.Link}}">
|
||||
{{.i18n.Tr "sign_in_with"}} <i class="octicon octicon-mark-github"></i>
|
||||
</a>
|
||||
</div><!-- end anonymous right menu -->
|
||||
|
||||
{{end}}
|
||||
</div><!-- end container -->
|
||||
</div><!-- end bar -->
|
||||
{{end}}
|
||||
{{/*
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
*/}}
|
|
@ -0,0 +1,60 @@
|
|||
{{template "base/head" .}}
|
||||
<div class="home">
|
||||
<div class="ui stackable middle very relaxed page grid">
|
||||
<div class="sixteen wide center aligned centered column">
|
||||
<div>
|
||||
<img class="logo" src="{{AppSubUrl}}/img/gitea-lg.png" />
|
||||
</div>
|
||||
<div class="hero">
|
||||
<h1 class="ui icon header title">
|
||||
Let's Code, Decentralized!
|
||||
</h1>
|
||||
<h2>Login with GitHub or
|
||||
<br>Register a new account to contribute.</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ui stackable middle very relaxed page grid">
|
||||
<div class="eight wide center column">
|
||||
<h1 class="hero ui icon header">
|
||||
<i class="octicon octicon-git-branch"></i> Hurrah for Gitea!
|
||||
</h1>
|
||||
<p class="large">
|
||||
I'm using Gitea, which is likely to become the first decentralized git platform.
|
||||
Help support decentralization by <a target="_blank" href="https://git.coolaj86.com/coolaj86/gitea-installer.sh">installing gitea</a> for yourself!
|
||||
</p>
|
||||
</div>
|
||||
<div class="eight wide center column">
|
||||
<h1 class="hero ui icon header">
|
||||
<i class="octicon octicon-circuit-board"></i> Hurrah for RPi!
|
||||
</h1>
|
||||
<p class="large">
|
||||
Home servers are the only thing that can save us from our centralized overlords.
|
||||
Gitea can run on a Raspberry Pi.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ui stackable middle very relaxed page grid">
|
||||
<div class="eight wide center column">
|
||||
<h1 class="hero ui icon header">
|
||||
<i class="octicon octicon-mail"></i> For Neo-Luddites
|
||||
</h1>
|
||||
<p class="large">
|
||||
Email was the web's first decentralized and distributed protocol.
|
||||
It may be old news, but its paradigms are the best hope for our futures.
|
||||
If we don't take back the web soon then GitHub, Facebook, Slack, Medium, etc will dictate our futures for us.
|
||||
</p>
|
||||
</div>
|
||||
<div class="eight wide center column">
|
||||
<h1 class="hero ui icon header">
|
||||
<i class="octicon octicon-code"></i> Lv. 99 Code Whisperers Welcome
|
||||
</h1>
|
||||
<p class="large">
|
||||
If you love code more than build tools, we'll make fast friends. :)
|
||||
</p>
|
||||
</div>
|
||||
<!-- should have one more of the above -->
|
||||
</div>
|
||||
<!-- the above may be repeated -->
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
|
@ -1,8 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
# wget -O install-gitea.bash https://git.coolaj86.com/coolaj86/gitea-installer/raw/master/install.bash; bash install-gitea.bash
|
||||
# or
|
||||
# wget -O - https://git.coolaj86.com/coolaj86/gitea-installer/raw/master/install.bash | bash
|
||||
# Most of the code credit for determining version is here: https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
|
||||
VER=$(curl --silent "https://api.github.com/repos/go-gitea/gitea/releases/latest" | # Get latest release from GitHub api
|
||||
grep '"tag_name":' | # Get tag line
|
||||
sed -E 's/.*"([^"]+)".*/\1/' | # Pluck JSON value
|
||||
sed 's|[v,]||g' ) # Remove v
|
||||
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
key="$1"
|
||||
|
||||
case $key in
|
||||
-v|version)
|
||||
VER="$2"
|
||||
shift # past argument
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
if test -z "${unknown}"
|
||||
then
|
||||
unknown=$1
|
||||
else
|
||||
echo "Unknown Option"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
shift # past argument or value
|
||||
done
|
||||
|
||||
# Create a 'gitea' user and group with the home /opt/gitea, no password (because it's a system user) and no GECOS
|
||||
sudo adduser gitea --home /opt/gitea --disabled-password --gecos ''
|
||||
|
@ -12,19 +37,79 @@ sudo mkdir -p /opt/gitea/ /var/log/gitea
|
|||
sudo chown -R gitea:gitea /opt/gitea/ /var/log/gitea
|
||||
|
||||
# Download and install gitea
|
||||
my_os=linux
|
||||
my_arch=amd64
|
||||
sys_arch="$(uname -m)"
|
||||
if [ $(echo $sys_arch | grep arm7) ]; then
|
||||
my_arch=arm-7
|
||||
|
||||
# Check if architecure is i386 and download Gitea
|
||||
if [ -n "$(uname -a | grep i386)" ]; then
|
||||
sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-386"
|
||||
fi
|
||||
sudo wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.0.1/gitea-1.0.1-$my_os-$my_arch
|
||||
sudo chmod +x /opt/gitea/gitea
|
||||
|
||||
# Check if architecure is x86 and download Gitea
|
||||
if [ -n "$(uname -a | grep x86_64)" ]; then
|
||||
sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-amd64"
|
||||
fi
|
||||
|
||||
# Check if architecure is ARMv6 and download Gitea
|
||||
if [ -n "$(uname -a | grep armv6l)" ]; then
|
||||
sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-6"
|
||||
fi
|
||||
|
||||
# Check if architecure is ARMv7 and download Gitea
|
||||
if [ -n "$(uname -a | grep armv7l)" ]; then
|
||||
sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-7"
|
||||
fi
|
||||
|
||||
# Setup Gitea symlink and permissions
|
||||
|
||||
sudo chmod +x /opt/gitea/gitea-$VER
|
||||
rm -f /opt/gitea/gitea
|
||||
sudo ln -sf gitea-$VER /opt/gitea/gitea
|
||||
sudo ln -sf gitea-$VER /usr/local/bin/gitea
|
||||
|
||||
# Download and install the gitea.service for systemd
|
||||
sudo wget -O /etc/systemd/system/gitea.service https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/master/dist/etc/systemd/system/gitea.service
|
||||
sudo curl -fsSL -o /etc/systemd/system/gitea.service https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/dist/etc/systemd/system/gitea.service
|
||||
|
||||
# Start gitea
|
||||
sudo systemctl enable gitea
|
||||
|
||||
## If this is performing an upgrade it may need extra ram for a limited time
|
||||
# fallocate -l 1G /tmp.swap
|
||||
# mkswap /tmp.swap
|
||||
# chmod 0600 /tmp.swap
|
||||
# swapon /tmp.swap
|
||||
sudo systemctl restart gitea
|
||||
|
||||
echo "Please visit http://localhost:3000/ now to finish installing gitea"
|
||||
set +e
|
||||
my_ip=$(ifconfig | grep inet | grep Mask | grep -v ':127\\.0\\.0\\.1' | grep -v ':192\\.168' | grep -v ':10\\.' | head -n 1 | cut -f 2 -d ':' | cut -f 1 -d ' ')
|
||||
my_ip=${my_ip:-localhost}
|
||||
set -e
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo "###########################"
|
||||
echo "# Time to Configure #"
|
||||
echo "###########################"
|
||||
echo ""
|
||||
echo "Just a few more steps to complete at the setup URL:"
|
||||
echo ""
|
||||
echo " http://$my_ip:3000/"
|
||||
echo ""
|
||||
echo "Future changes can be made by editing the config file:"
|
||||
echo ""
|
||||
echo " /opt/gitea/custom/conf/app.ini"
|
||||
echo ""
|
||||
echo ""
|
||||
echo "P.S. Would you like to customize Gitea?"
|
||||
echo ""
|
||||
echo " Read basic instructions:"
|
||||
echo " https://git.coolaj86.com/coolaj86/gitea-installer.sh/_edit/master/install.bash"
|
||||
echo ""
|
||||
echo " View current templates:"
|
||||
echo " https://github.com/go-gitea/gitea/tree/v$VER/templates"
|
||||
echo ""
|
||||
echo " See a sample app.ini:"
|
||||
echo " https://github.com/go-gitea/gitea/blob/v$VER/custom/conf/app.ini.sample"
|
||||
echo ""
|
||||
|
||||
# sleep 5
|
||||
# swapoff /tmp.swap
|
||||
# rm /tmp.swap
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# Gitea Uninstall Script
|
||||
# This script removes Gitea as installed by this script. THIS DELTES ALL DATA if you are using SQLite.
|
||||
|
||||
echo "Removing Gitea and DELETING ALL DATA."
|
||||
|
||||
echo "Stopping and removing the Gitea service."
|
||||
sudo systemctl stop gitea # Stop the Gitea service
|
||||
sudo systemctl disable gitea # Disable the Gitea service automatically starting on boot.
|
||||
sudo rm /etc/systemd/system/gitea.service # Delete the Gitea service.
|
||||
|
||||
echo "Deleting Gitea configuration and Data."
|
||||
|
||||
sudo rm /usr/local/bin/gitea # Remove Gitea from Path
|
||||
sudo rm -rf /opt/gitea # Remove Gitea Data
|
||||
|
||||
if test ! -d /opt/gitea
|
||||
echo "Gitea has been completely removed."
|
||||
else
|
||||
echo "Gitea has not been completely removed. File an issue here: https://git.coolaj86.com/coolaj86/gitea-installer.sh/issues/new"
|
||||
fi
|
Loading…
Reference in New Issue