diff --git a/Dockerfile b/Dockerfile index 181ec2c..8677270 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# Stage 1: Build the Go application +# --- Stage 1: Build the Go application --- FROM golang:1.23 AS builder ENV CGO_ENABLED=0 @@ -8,18 +8,19 @@ ENV GOARCH=amd64 WORKDIR /app # Copy the Go modules and dependencies -COPY ./golang/go.mod ./golang/go.sum ./ +COPY ./src/go.mod ./src/go.sum ./ RUN go mod download # Copy the source code -COPY ./golang/cmd ./cmd -COPY ./golang/assets ./assets -COPY ./golang/internal ./internal +COPY ./src/cmd ./cmd +COPY ./src/assets ./assets +COPY ./src/internal ./internal # Build the application RUN go build -o main cmd/frontend/* -# Stage 2: Run the application + +# --- Stage 2: Run the application --- FROM alpine:latest ENV DB_HOST="10.99.0.3" @@ -28,14 +29,12 @@ ENV DB_NAME="crowsnest" ENV DB_USER="crow" ENV DB_PASS="" -# Set the working directory WORKDIR /app # Copy the built binary from the builder stage COPY --from=builder /app/main . -COPY ./golang/assets ./assets +COPY ./src/assets ./assets -# Expose the desired port (e.g., 8080) EXPOSE 8080 # Command to run the application diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6854d81 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +go-run: + cd src; DB_USER=crow DB_PASS=4LlKpnQ2RZPzL13BSpkW4k DB_NAME=crowsnest DB_HOST=10.99.0.3 go run cmd/frontend/* + +docker-run: docker-build + docker run --rm -p 8080:8080 --env DB_PASS="4LlKpnQ2RZPzL13BSpkW4k" git.kohout-dev.de/crowsnest/crowsnest:latest + +docker-build: + docker build --platform linux/amd64 -t git.kohout-dev.de/crowsnest/crowsnest:latest . \ + && docker push git.kohout-dev.de/crowsnest/crowsnest:latest diff --git a/golang/Makefile b/golang/Makefile deleted file mode 100644 index 8fb6476..0000000 --- a/golang/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -serv: - DB_USER=crow DB_PASS=4LlKpnQ2RZPzL13BSpkW4k DB_NAME=crowsnest DB_HOST=10.99.0.3 go run cmd/frontend/* -crawl: - DB_USER=crow DB_PASS=4LlKpnQ2RZPzL13BSpkW4k DB_NAME=crowsnest DB_HOST=192.168.0.2 go run cmd/crawler/main.go -summ: - DB_USER=crow DB_PASS=4LlKpnQ2RZPzL13BSpkW4k DB_NAME=crowsnest DB_HOST=192.168.0.2 go run cmd/summarizer/main.go diff --git a/python/ai_api/main.py b/python/ai_api/main.py deleted file mode 100644 index 3825d5c..0000000 --- a/python/ai_api/main.py +++ /dev/null @@ -1,51 +0,0 @@ -from transformers import pipeline -import psycopg2 - -# Connect to the School database - -def summarize_articles(summfunc): - """ Connect to the PostgreSQL database server """ - - conn = psycopg2.connect( - dbname="crowsnest", - user="crow", - password="4LlKpnQ2RZPzL13BSpkW4k", - host="192.168.0.2" - ) - - try: - # create a cursor - cur = conn.cursor() - - for i in range(20): - print(i) - # execute a statement - cur.execute(""" - SELECT id, content - FROM articles - WHERE aisummary = '' - ORDER BY publishDate DESC - LIMIT 20 - """) - - # display the PostgreSQL database server version - keys, contents = list(zip(*cur.fetchall())) - - for key, summary in zip(keys, summfunc(list(contents))): - cur.execute("UPDATE articles SET aisummary = %s WHERE id = %s", (summary, key)) - - conn.commit() - - # close the communication with the PostgreSQL - cur.close() - except (Exception, psycopg2.DatabaseError) as error: - raise error - finally: - if conn is not None: - conn.close() - print('Database connection closed.') - - -if __name__ == '__main__': - pipe = pipeline("summarization", model="Shahm/bart-german") - summarize_articles(lambda x: [str(e["summary_text"]) for e in pipe(x)]) diff --git a/golang/assets/migrations/20250102152758_article.sql b/src/assets/migrations/20250102152758_article.sql similarity index 100% rename from golang/assets/migrations/20250102152758_article.sql rename to src/assets/migrations/20250102152758_article.sql diff --git a/golang/assets/migrations/20250102232127_article_fts.sql b/src/assets/migrations/20250102232127_article_fts.sql similarity index 100% rename from golang/assets/migrations/20250102232127_article_fts.sql rename to src/assets/migrations/20250102232127_article_fts.sql diff --git a/golang/assets/migrations/20250103140557_response_cache.sql b/src/assets/migrations/20250103140557_response_cache.sql similarity index 100% rename from golang/assets/migrations/20250103140557_response_cache.sql rename to src/assets/migrations/20250103140557_response_cache.sql diff --git a/golang/assets/migrations/20250103203320_response_new_column.sql b/src/assets/migrations/20250103203320_response_new_column.sql similarity index 100% rename from golang/assets/migrations/20250103203320_response_new_column.sql rename to src/assets/migrations/20250103203320_response_new_column.sql diff --git a/golang/assets/migrations/20250107091120_remove_responses.sql b/src/assets/migrations/20250107091120_remove_responses.sql similarity index 100% rename from golang/assets/migrations/20250107091120_remove_responses.sql rename to src/assets/migrations/20250107091120_remove_responses.sql diff --git a/golang/assets/migrations/20250107104609_drop_column_author.sql b/src/assets/migrations/20250107104609_drop_column_author.sql similarity index 100% rename from golang/assets/migrations/20250107104609_drop_column_author.sql rename to src/assets/migrations/20250107104609_drop_column_author.sql diff --git a/golang/assets/migrations/20250107113527_add_aisummary_column.sql b/src/assets/migrations/20250107113527_add_aisummary_column.sql similarity index 100% rename from golang/assets/migrations/20250107113527_add_aisummary_column.sql rename to src/assets/migrations/20250107113527_add_aisummary_column.sql diff --git a/golang/assets/static/index.html b/src/assets/static/index.html similarity index 100% rename from golang/assets/static/index.html rename to src/assets/static/index.html diff --git a/golang/assets/templates/article.html b/src/assets/templates/article.html similarity index 100% rename from golang/assets/templates/article.html rename to src/assets/templates/article.html diff --git a/golang/assets/templates/layout.html b/src/assets/templates/layout.html similarity index 100% rename from golang/assets/templates/layout.html rename to src/assets/templates/layout.html diff --git a/golang/cmd/crawler/collectors/collector.go b/src/cmd/crawler/collectors/collector.go similarity index 100% rename from golang/cmd/crawler/collectors/collector.go rename to src/cmd/crawler/collectors/collector.go diff --git a/golang/cmd/crawler/collectors/spiegel.go b/src/cmd/crawler/collectors/spiegel.go similarity index 100% rename from golang/cmd/crawler/collectors/spiegel.go rename to src/cmd/crawler/collectors/spiegel.go diff --git a/golang/cmd/crawler/collectors/zeit.go b/src/cmd/crawler/collectors/zeit.go similarity index 100% rename from golang/cmd/crawler/collectors/zeit.go rename to src/cmd/crawler/collectors/zeit.go diff --git a/golang/cmd/crawler/main.go b/src/cmd/crawler/main.go similarity index 100% rename from golang/cmd/crawler/main.go rename to src/cmd/crawler/main.go diff --git a/golang/cmd/frontend/Index.go b/src/cmd/frontend/Index.go similarity index 100% rename from golang/cmd/frontend/Index.go rename to src/cmd/frontend/Index.go diff --git a/golang/cmd/frontend/UpSearch.go b/src/cmd/frontend/UpSearch.go similarity index 100% rename from golang/cmd/frontend/UpSearch.go rename to src/cmd/frontend/UpSearch.go diff --git a/golang/cmd/frontend/main.go b/src/cmd/frontend/main.go similarity index 100% rename from golang/cmd/frontend/main.go rename to src/cmd/frontend/main.go diff --git a/golang/cmd/frontend/routes.go b/src/cmd/frontend/routes.go similarity index 100% rename from golang/cmd/frontend/routes.go rename to src/cmd/frontend/routes.go diff --git a/golang/go.mod b/src/go.mod similarity index 100% rename from golang/go.mod rename to src/go.mod diff --git a/golang/go.sum b/src/go.sum similarity index 100% rename from golang/go.sum rename to src/go.sum diff --git a/golang/internal/model/article.go b/src/internal/model/article.go similarity index 100% rename from golang/internal/model/article.go rename to src/internal/model/article.go diff --git a/golang/internal/model/database/articles.go b/src/internal/model/database/articles.go similarity index 100% rename from golang/internal/model/database/articles.go rename to src/internal/model/database/articles.go diff --git a/golang/internal/model/database/connect.go b/src/internal/model/database/connect.go similarity index 100% rename from golang/internal/model/database/connect.go rename to src/internal/model/database/connect.go