Skip to content

Commit d272903

Browse files
authored
Merge pull request #6 from jsoneaday/integrate_neon_pg
Integrate neon pg
2 parents feb54be + d96147f commit d272903

File tree

31 files changed

+258
-109
lines changed

31 files changed

+258
-109
lines changed

deploy/.dockerignore

Lines changed: 0 additions & 4 deletions
This file was deleted.

deploy/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
aws
2-
awscliv2.zip
2+
awscliv2.zip
3+
ssl

deploy/Dockerfile

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,31 @@
1-
FROM rust:1.79 as builder
1+
FROM rust:1.79 AS builder
22
RUN apt-get update && apt-get install -y \
33
pkg-config \
44
libssl-dev \
5+
curl \
56
&& rm -rf /var/lib/apt/lists/*
6-
7-
WORKDIR /usr/src/syntaxmakersserver
8-
COPY ./server/. .
9-
7+
COPY server/ /usr/src/syntaxmakersserver/server/
8+
WORKDIR /usr/src/syntaxmakersserver/server
109
RUN cargo build --release
11-
RUN echo "Searching for syntaxmakers-server..." && find / -name "syntaxmakers-server" 2>/dev/null
10+
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
11+
apt-get install -y nodejs
12+
COPY webclient/ /usr/src/syntaxmakersserver/webclient/
13+
WORKDIR /usr/src/syntaxmakersserver/webclient
14+
RUN npm install
15+
RUN npm run build
1216

1317
FROM debian:stable-slim
14-
# Install OpenSSL runtime
1518
RUN apt-get update && \
16-
apt-get install -y libssl3 && \
17-
apt-get clean
18-
# Copy the compiled binary from the builder image
19+
apt-get install -y \
20+
nginx \
21+
libssl3 \
22+
curl \
23+
jq \
24+
&& apt-get clean
1925
COPY --from=builder /usr/src/syntaxmakersserver /usr/local/bin/syntaxmakersserver
20-
WORKDIR /usr/local/bin/syntaxmakersserver
21-
ENTRYPOINT ["./target/release/syntaxmakers-server"]
26+
RUN rm /etc/nginx/sites-enabled/default
27+
EXPOSE 80 443
28+
RUN mv /usr/local/bin/syntaxmakersserver/webclient/nginx.conf /etc/nginx/conf.d/nginx.conf
29+
# RUN mv /usr/local/bin/syntaxmakersserver/server/.env.production /usr/local/bin/syntaxmakersserver/server/.env
30+
WORKDIR /usr/local/bin/syntaxmakersserver/server
31+
CMD ["sh", "-c", "nginx && ./target/release/syntaxmakers-server"]

deploy/build.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1-
echo build docker container
1+
docker rmi $(docker images -q) -f
22
docker build -f ./Dockerfile -t syntaxmakers:1.0 ..
3+
docker tag syntaxmakers:1.0 201558611471.dkr.ecr.us-east-2.amazonaws.com/syntaxmakers1
4+
aws ecr get-login-password --region us-east-2 --profile cli | docker login --username AWS --password-stdin 201558611471.dkr.ecr.us-east-2.amazonaws.com
5+
docker push 201558611471.dkr.ecr.us-east-2.amazonaws.com/syntaxmakers1

deploy/prod_data.sql

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
insert into country (name) values ('United States');
2+
3+
insert into prog_language (name) values ('Cobol');
4+
insert into prog_language (name) values ('Nim');
5+
insert into prog_language (name) values ('Crystal');
6+
insert into prog_language (name) values ('Elixir');
7+
insert into prog_language (name) values ('F#');
8+
insert into prog_language (name) values ('Haskell');
9+
insert into prog_language (name) values ('OCaml');
10+
insert into prog_language (name) values ('Erlang');
11+
insert into prog_language (name) values ('Clojure');
12+
insert into prog_language (name) values ('Racket');
13+
insert into prog_language (name) values ('Elm');
14+
insert into prog_language (name) values ('Lua');
15+
insert into prog_language (name) values ('Zig');
16+
insert into prog_language (name) values ('Pony');
17+
insert into prog_language (name) values ('Idris');
18+
insert into prog_language (name) values ('PureScript');
19+
insert into prog_language (name) values ('Pharo');
20+
insert into prog_language (name) values ('Forth');
21+
insert into prog_language (name) values ('J');
22+
insert into prog_language (name) values ('Prolog');
23+
insert into prog_language (name) values ('Mercury');
24+
insert into prog_language (name) values ('Reason');
25+
insert into prog_language (name) values ('Mojo');
26+
insert into prog_language (name) values ('Oberon');
27+
insert into prog_language (name) values ('Coq');
28+
insert into prog_language (name) values ('D');
29+
insert into prog_language (name) values ('Hack');
30+
insert into prog_language (name) values ('R');
31+
insert into prog_language (name) values ('Q');
32+
insert into prog_language (name) values ('Alice');
33+
insert into prog_language (name) values ('Eiffel');
34+
insert into prog_language (name) values ('Ceylon');
35+
insert into prog_language (name) values ('Bend');
36+
37+
insert into industry (name) values ('AI/ML');
38+
insert into industry (name) values ('Blockchain/Web3');
39+
insert into industry (name) values ('Finance');
40+
insert into industry (name) values ('Food and Beverage');
41+
insert into industry (name) values ('Games');
42+
insert into industry (name) values ('Insurance');
43+
insert into industry (name) values ('IT');
44+
insert into industry (name) values ('Legal');
45+
insert into industry (name) values ('Other');
46+
47+
insert into salary (base) values (200000);
48+
insert into salary (base) values (300000);
49+
insert into salary (base) values (400000);
50+
insert into salary (base) values (500000);

server/.dockerignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
dbdata
22
.env
3-
.env.production
43
.env.example

server/rust-toolchain.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[toolchain]
2+
channel = "1.79.0"

server/src/common/repository/base.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,27 @@ impl ConnGetter for DbRepo {
6262

6363
async fn get_conn_pool() -> Pool<Postgres> {
6464
dotenv().ok();
65-
let postgres_host = env::var("POSTGRES_HOST").unwrap();
65+
6666
let postgres_port = env::var("POSTGRES_PORT").unwrap().parse::<u16>().unwrap();
6767
let postgres_password = env::var("POSTGRES_PASSWORD").unwrap();
6868
let postgres_user = env::var("POSTGRES_USER").unwrap();
6969
let postgres_db = env::var("POSTGRES_DB").unwrap();
70+
let env = env::var("ENV").unwrap();
71+
let postgres_host = if env == "production" {
72+
env::var("POSTGRES_HOST").unwrap()
73+
} else {
74+
format!("{}:{}", env::var("POSTGRES_HOST").unwrap(), postgres_port)
75+
};
76+
let ssl_mode = if env == "production" {
77+
"?sslmode=require"
78+
} else {
79+
""
80+
};
7081

7182
let postgres_url = format!(
72-
"postgres://{postgres_user}:{postgres_password}@{postgres_host}:{postgres_port}/{postgres_db}"
83+
"postgres://{postgres_user}:{postgres_password}@{postgres_host}/{postgres_db}{ssl_mode}"
7384
);
74-
info!("connection string {}", postgres_url);
85+
//info!("connection string {}", postgres_url);
7586

7687
let conn = sqlx::postgres::PgPool::connect(&postgres_url).await.unwrap();
7788
let result = sqlx::query_as::<_, Version>(r"

server/src/common/repository/industries/repo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ mod internal {
88
use super::*;
99

1010
pub async fn query_all_industries(conn: &Pool<Postgres>) -> Result<Vec<Industry>, Error> {
11-
query_as::<_, Industry>("select * from industry").fetch_all(conn).await
11+
query_as::<_, Industry>("select * from industry order by name").fetch_all(conn).await
1212
}
1313
}
1414

server/src/common/repository/languages/repo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ mod internal {
88
use super::*;
99

1010
pub async fn query_all_languages(conn: &Pool<Postgres>) -> Result<Vec<Language>, Error> {
11-
query_as::<_, Language>("select * from prog_language").fetch_all(conn).await
11+
query_as::<_, Language>("select * from prog_language order by name").fetch_all(conn).await
1212
}
1313
}
1414

0 commit comments

Comments
 (0)