Skip to content

Commit 6fc2b32

Browse files
committed
Initial system
1 parent 8ccf150 commit 6fc2b32

25 files changed

+3177
-0
lines changed

.editorconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
root = true
2+
3+
[*]
4+
end_of_line = lf
5+
insert_final_newline = false
6+
charset = utf-8
7+
indent_style = tab
8+
indent_size = 4

.env.sample/.env.mmdb.sample

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
SERVER_HOST=127.0.0.1
2+
SERVER_PORT=8081
3+
4+
API_KEY=
5+
6+
COUNTRY=dbip-country
7+
CITY=dbip-city
8+
ASN=dbip-asn
9+
10+
UPDATE_ON_RESTART=1
11+
12+
DB_TYPE=mmdb

.env.sample/.env.mysql.sample

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
SERVER_HOST=127.0.0.1
2+
SERVER_PORT=8081
3+
4+
API_KEY=
5+
6+
COUNTRY=dbip-country
7+
CITY=dbip-city
8+
ASN=dbip-asn
9+
10+
UPDATE_ON_RESTART=1
11+
12+
DB_TYPE=mysql
13+
DB_HOST=127.0.0.1
14+
DB_PORT=3306
15+
DB_USER=db_username
16+
DB_PASS=db_password
17+
DB_NAME=ip

.env.sample/.env.postgres.sample

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
SERVER_HOST=127.0.0.1
2+
SERVER_PORT=8081
3+
4+
API_KEY=
5+
6+
COUNTRY=dbip-country
7+
CITY=dbip-city
8+
ASN=dbip-asn
9+
10+
UPDATE_ON_RESTART=1
11+
12+
DB_TYPE=postgres
13+
DB_HOST=127.0.0.1
14+
DB_PORT=5432
15+
DB_USER=db_username
16+
DB_PASS=db_password
17+
DB_NAME=db_name
18+
DB_SCHEMA=ip

.env.sample/.env.sqlite.sample

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
SERVER_HOST=127.0.0.1
2+
SERVER_PORT=8081
3+
4+
API_KEY=
5+
6+
COUNTRY=dbip-country
7+
CITY=dbip-city
8+
ASN=dbip-asn
9+
10+
UPDATE_ON_RESTART=1
11+
12+
DB_TYPE=sqlite
13+
DB_FILE=path/to/db.db

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Auto detect text files and perform LF normalization
22
* text=auto
3+
* eol=lf

.gitignore

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Logs
2+
logs
3+
*.log
4+
5+
# Env file
6+
.env
7+
8+
# mac files
9+
.DS_Store
10+
11+
# vim swap files
12+
*.swp
13+
14+
# webstorm
15+
.idea
16+
17+
# vscode
18+
.vscode
19+
*code-workspace
20+
21+
# SQLite files
22+
*.db
23+
24+
# The downloads directory
25+
downloads
26+
27+
# The builds directory
28+
builds

Makefile

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
BINARY_NAME=ip-location-api
2+
3+
ifeq ($(OS), Windows_NT)
4+
DETECTED_OS := Windows
5+
BUILD_COMMAND := build_windows
6+
CLEAN_COMMAND := clean_windows
7+
else
8+
DETECTED_OS := $(shell sh -c 'uname 2>/dev/null || echo Unknown')
9+
BUILD_COMMAND := build_other
10+
CLEAN_COMMAND := clean_other
11+
endif
12+
13+
all: test build
14+
15+
# Build commands
16+
build: update $(BUILD_COMMAND)
17+
18+
build_other:
19+
GOARCH=amd64 GOOS=linux go build -o builds/$(BINARY_NAME)-linux-x64.bin .
20+
GOARCH=amd64 GOOS=windows go build -o builds/$(BINARY_NAME)-windows-x64.exe .
21+
GOARCH=amd64 GOOS=darwin go build -o builds/$(BINARY_NAME)-darwin-x64.dmg .
22+
GOARCH=arm64 GOOS=linux go build -o builds/$(BINARY_NAME)-linux-arm64.bin .
23+
GOARCH=arm64 GOOS=windows go build -o builds/$(BINARY_NAME)-windows-arm64.exe .
24+
GOARCH=arm64 GOOS=darwin go build -o builds/$(BINARY_NAME)-darwin-arm64.dmg .
25+
26+
build_windows:
27+
set "GOARCH=amd64" && set "GOOS=linux" && go build -o builds\$(BINARY_NAME)-linux-x64.bin .
28+
set "GOARCH=amd64" && set "GOOS=windows" && go build -o builds\$(BINARY_NAME)-windows-x64.exe .
29+
set "GOARCH=amd64" && set "GOOS=darwin" && go build -o builds\$(BINARY_NAME)-darwin-x64.dmg .
30+
set "GOARCH=arm64" && set "GOOS=linux" && go build -o builds\$(BINARY_NAME)-linux-arm64.bin .
31+
set "GOARCH=arm64" && set "GOOS=windows" && go build -o builds\$(BINARY_NAME)-windows-arm64.exe .
32+
set "GOARCH=arm64" && set "GOOS=darwin" && go build -o builds\$(BINARY_NAME)-darwin-arm64.dmg .
33+
34+
# Clean commands
35+
clean: $(CLEAN_COMMAND)
36+
37+
clean_go:
38+
go clean
39+
40+
clean_other: clean_go
41+
rm builds/$(BINARY_NAME)-linux-x64.bin
42+
rm builds/$(BINARY_NAME)-windows-x64.exe
43+
rm builds/$(BINARY_NAME)-darwin-x64.dmg
44+
rm builds/$(BINARY_NAME)-linux-arm64.bin
45+
rm builds/$(BINARY_NAME)-windows-arm64.exe
46+
rm builds/$(BINARY_NAME)-darwin-arm64.dmg
47+
48+
clean_windows: clean_go
49+
del "builds\$(BINARY_NAME)-linux-x64.bin"
50+
del "builds\$(BINARY_NAME)-windows-x64.exe"
51+
del "builds\$(BINARY_NAME)-darwin-x64.dmg"
52+
del "builds\$(BINARY_NAME)-linux-arm64.bin"
53+
del "builds\$(BINARY_NAME)-windows-arm64.exe"
54+
del "builds\$(BINARY_NAME)-darwin-arm64.dmg"
55+
56+
# Dev commands
57+
dev: update
58+
go run .
59+
60+
# Run commands
61+
run: clean build
62+
./builds/$(BINARY_NAME)
63+
64+
# Test commands
65+
test: update
66+
go test .
67+
68+
# Update commands
69+
update:
70+
go get -u
71+
go mod tidy

0 commit comments

Comments
 (0)