diff --git a/.gitignore b/.gitignore index d43ae1a..d8c2da9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ bin/ obj/ wwwroot/images/ cartracker.db +data/cartracker.db wwwroot/documents/ wwwroot/temp/ wwwroot/imports/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..787df49 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env + +WORKDIR /app + +COPY *.csproj ./ +RUN dotnet restore + +COPY . ./ +RUN dotnet publish -c Release -o out + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime +WORKDIR /app +RUN mkdir -p /app/data +COPY --from=build-env /app/out . + +EXPOSE 5000 + +ENTRYPOINT [ "dotnet", "CarCareTracker.dll" ] \ No newline at end of file diff --git a/External/Implementations/GasRecordDataAccess.cs b/External/Implementations/GasRecordDataAccess.cs index dc1e3ac..68c214f 100644 --- a/External/Implementations/GasRecordDataAccess.cs +++ b/External/Implementations/GasRecordDataAccess.cs @@ -6,7 +6,7 @@ namespace CarCareTracker.External.Implementations { public class GasRecordDataAccess: IGasRecordDataAccess { - private static string dbName = "cartracker.db"; + private static string dbName = "data/cartracker.db"; private static string tableName = "gasrecords"; public List GetGasRecordsByVehicleId(int vehicleId) { diff --git a/External/Implementations/NoteDataAccess.cs b/External/Implementations/NoteDataAccess.cs index 96018c4..a8e9155 100644 --- a/External/Implementations/NoteDataAccess.cs +++ b/External/Implementations/NoteDataAccess.cs @@ -6,7 +6,7 @@ namespace CarCareTracker.External.Implementations { public class NoteDataAccess: INoteDataAccess { - private static string dbName = "cartracker.db"; + private static string dbName = "data/cartracker.db"; private static string tableName = "notes"; public Note GetNoteByVehicleId(int vehicleId) { diff --git a/External/Implementations/ServiceRecordDataAccess.cs b/External/Implementations/ServiceRecordDataAccess.cs index 146c3fe..767d253 100644 --- a/External/Implementations/ServiceRecordDataAccess.cs +++ b/External/Implementations/ServiceRecordDataAccess.cs @@ -6,7 +6,7 @@ namespace CarCareTracker.External.Implementations { public class ServiceRecordDataAccess: IServiceRecordDataAccess { - private static string dbName = "cartracker.db"; + private static string dbName = "data/cartracker.db"; private static string tableName = "servicerecords"; public List GetServiceRecordsByVehicleId(int vehicleId) { diff --git a/External/Implementations/TaxRecordDataAccess.cs b/External/Implementations/TaxRecordDataAccess.cs index 90db232..e02ec9a 100644 --- a/External/Implementations/TaxRecordDataAccess.cs +++ b/External/Implementations/TaxRecordDataAccess.cs @@ -6,7 +6,7 @@ namespace CarCareTracker.External.Implementations { public class TaxRecordDataAccess : ITaxRecordDataAccess { - private static string dbName = "cartracker.db"; + private static string dbName = "data/cartracker.db"; private static string tableName = "taxrecords"; public List GetTaxRecordsByVehicleId(int vehicleId) { diff --git a/External/Implementations/VehicleDataAccess.cs b/External/Implementations/VehicleDataAccess.cs index 9a008f8..adb2c85 100644 --- a/External/Implementations/VehicleDataAccess.cs +++ b/External/Implementations/VehicleDataAccess.cs @@ -6,7 +6,7 @@ namespace CarCareTracker.External.Implementations { public class VehicleDataAccess: IVehicleDataAccess { - private static string dbName = "cartracker.db"; + private static string dbName = "data/cartracker.db"; private static string tableName = "vehicles"; public bool SaveVehicle(Vehicle vehicle) { diff --git a/README.md b/README.md index b7e0bfa..044ad1a 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,13 @@ A self-hosted, open-source vehicle service records and maintainence tracker. ## Why Because nobody should have to deal with a homemade spreadsheet or a shoebox full of receipts when it comes to vehicle maintainence. +## Docker Setup (Recommended) +1. Install Docker +2. Clone this repo +3. Run `docker build -t lubelog .` +4. Run `docker run -d -p 80:5000 --name lubelog lubelog` + 1. Optionally, you can mount a volume to the container to persist data. For example, `docker run -d -p 80:5000 -v /path/to/data:/app/data --name lubelog lubelog` + ## Dependencies - Bootstrap - LiteDB diff --git a/appsettings.json b/appsettings.json index 0cb8fa6..abd4f5b 100644 --- a/appsettings.json +++ b/appsettings.json @@ -8,7 +8,7 @@ "Kestrel": { "Endpoints": { "http": { - "Url": "http://localhost:5000" + "Url": "http://0.0.0.0:5000" } } },