sequoia hace 1 mes
commit
12ba20eea4
Se han modificado 6 ficheros con 1221 adiciones y 0 borrados
  1. 0 0
      README.md
  2. 524 0
      appchat.py
  3. 3 0
      chat_start.sh
  4. 0 0
      data/chat_history_0.json
  5. 25 0
      fastpdf.py
  6. 669 0
      nohup.out

+ 0 - 0
README.md


+ 524 - 0
appchat.py

@@ -0,0 +1,524 @@
+# -*- coding: utf-8 -*-
+import os
+import re
+import glob
+import json
+import shutil
+import base64
+import uuid
+import datetime
+import subprocess
+import html
+
+import streamlit as st
+import streamlit.components.v1 as components
+from openai import OpenAI
+
+# ========== 启动文件服务(非阻塞)==========
+try:
+    if "fastpdf_spawned" not in st.session_state:
+        subprocess.Popen(["python", "fastpdf.py"])
+        st.session_state["fastpdf_spawned"] = True
+except Exception:
+    pass
+
+# ========== 示例:模型和相应的 API 密钥 ==========
+# 请在生产环境中改为安全地注入 API Key(如通过环境变量)
+default_key = "sk-re2NlaKIQn11ZNWzAbB6339cEbF94c6aAfC8B7Ab82879bEa"  # 默认令牌,请勿用于生产
+model_keys = {
+    "grok-3": default_key,
+    "grok-4.1": default_key,
+    "grok-4.2": default_key,
+    "gpt-5.4-mini": default_key,
+    "gpt-4o-mini": default_key,
+    # "gpt-4.1-mini-2025-04-14": default_key,
+    "o1-mini": default_key,
+    "o4-mini": default_key,
+    "deepseek-v3.1": default_key,
+    "deepseek-r1": default_key,
+    "grok-4": default_key,
+    "gpt-5-all": default_key,
+    "gpt-4o-all": default_key,
+    # "gpt-5-mini-2025-08-07": default_key,
+    "o3-mini-all": default_key,
+    # "claude-sonnet-4-20250514": default_key,
+}
+
+st.title("ChatGPT-like Clone")
+
+selected_model = st.sidebar.selectbox("选择模型", list(model_keys.keys()))
+api_key = model_keys[selected_model]
+api_url = "https://yunwu.ai/v1"
+
+client = OpenAI(api_key=api_key, base_url=api_url)
+
+data_dir = "data"
+backup_dir = "data_bak"
+blog_dir = "blog"
+upload_dir = "uploads"
+
+for directory in [data_dir, backup_dir, blog_dir, upload_dir]:
+    if not os.path.exists(directory):
+        os.makedirs(directory)
+
+session_id_file = os.path.join(data_dir, "session_id.txt")
+
+
+def load_session_id():
+    if os.path.exists(session_id_file):
+        try:
+            with open(session_id_file, "r", encoding="utf-8") as f:
+                c = f.read().strip()
+                return int(c) if c.isdigit() else 0
+        except Exception:
+            return 0
+    return 0
+
+
+def save_session_id(session_id: int):
+    with open(session_id_file, "w", encoding="utf-8") as f:
+        f.write(str(session_id))
+
+
+if "openai_model" not in st.session_state:
+    st.session_state["openai_model"] = selected_model
+
+
+def load_history(file_path: str):
+    match = re.search(r'chat_history_(\d+)\.json', os.path.basename(file_path))
+    if match:
+        st.session_state.session_id = int(match.group(1))
+    try:
+        with open(file_path, "r", encoding="utf-8") as f:
+            st.session_state.messages = json.load(f)
+    except Exception:
+        st.session_state.messages = []
+
+
+def load_latest_history():
+    history_files = sorted(glob.glob(os.path.join(data_dir, "*.json")), key=os.path.getmtime)
+    if history_files:
+        load_history(history_files[-1])
+
+
+if "messages" not in st.session_state:
+    st.session_state.messages = []
+    load_latest_history()
+
+if "session_id" not in st.session_state:
+    st.session_state.session_id = load_session_id()
+
+# 用于控制“单块展开”的状态集合(索引集合)
+if "expanded_messages" not in st.session_state:
+    st.session_state.expanded_messages = set()
+
+
+def save_history():
+    file_path = os.path.join(data_dir, f"chat_history_{st.session_state.session_id}.json")
+    try:
+        json.dumps(st.session_state.messages)
+        with open(file_path, "w", encoding="utf-8") as f:
+            json.dump(st.session_state.messages, f, ensure_ascii=False)
+    except (TypeError, ValueError):
+        st.error("数据格式不正确,无法保存记录")
+
+
+def move_history(file_path: str):
+    if os.path.exists(file_path):
+        destination_file = os.path.join(backup_dir, os.path.basename(file_path))
+        shutil.move(file_path, destination_file)
+
+
+def delete_history(file_path: str):
+    if os.path.exists(file_path):
+        os.remove(file_path)
+
+
+def text_from_content(content):
+    if isinstance(content, str):
+        return content
+    elif isinstance(content, list):
+        return " ".join([part.get("text", "") for part in content if part.get("type") == "text"])
+    return str(content)
+
+
+def get_chat_title(messages):
+    if messages:
+        title = text_from_content(messages[0].get("content", "")) or "空的聊天"
+        return title[:12]
+    return "空的聊天"[:12]
+
+
+def show_history_files(page: int = 0, page_size: int = 10):
+    with st.sidebar.expander("历史聊天记录"):
+        history_files = [(f, os.path.getmtime(f)) for f in glob.glob(os.path.join(data_dir, "*.json"))]
+        history_files.sort(key=lambda x: x[1], reverse=True)
+
+        total_files = len(history_files)
+        total_pages = (total_files // page_size) + (1 if total_files % page_size > 0 else 0)
+
+        # 页码范围校正
+        if page >= total_pages and total_pages > 0:
+            st.session_state.current_page = max(0, total_pages - 1)
+            st.rerun()
+        elif page < 0:
+            st.session_state.current_page = 0
+            st.rerun()
+
+        start = page * page_size
+        end = start + page_size
+        display_files = history_files[start:end]
+
+        if not display_files:
+            st.write("无记录。")
+        else:
+            for file_path, _mtime in display_files:
+                try:
+                    with open(file_path, "r", encoding="utf-8") as f:
+                        chat_history = json.load(f)
+                except Exception:
+                    continue
+
+                file_name = get_chat_title(chat_history)
+                col1, col2, col3 = st.sidebar.columns([3, 1, 1])
+                with col1:
+                    if st.button(file_name, key=f"load_{os.path.basename(file_path)}"):
+                        load_history(file_path)
+                        # 切换历史时,清空单块展开状态
+                        st.session_state.expanded_messages = set()
+                        st.rerun()
+                with col2:
+                    if st.button("📦", key=f"move_{os.path.basename(file_path)}", help="移动到备份文件夹"):
+                        move_history(file_path)
+                        st.success(f"{file_name} 已移动到备份。")
+                        st.rerun()
+                with col3:
+                    if st.button("❌", key=f"delete_{os.path.basename(file_path)}", help="删除"):
+                        delete_history(file_path)
+                        st.success(f"{file_name} 已删除。")
+                        st.rerun()
+
+        col_prev, col_next = st.sidebar.columns([1, 1])
+        with col_prev:
+            if st.button("上一页", disabled=page <= 0, key="history_prev_page"):
+                st.session_state.current_page -= 1
+                st.rerun()
+        with col_next:
+            if st.button("下一页", disabled=page >= total_pages - 1, key="history_next_page"):
+                st.session_state.current_page += 1
+                st.rerun()
+
+
+if "current_page" not in st.session_state:
+    st.session_state.current_page = 0
+
+
+def export_message(content):
+    # 文本提取与转义
+    if isinstance(content, str):
+        processed_content = content.replace('\n', '\n').replace('"', '"')
+    elif isinstance(content, list):
+        processed_content = " ".join([part.get("text", "") for part in content if part.get("type") == "text"])
+        processed_content = processed_content.replace('\n', '\n').replace('"', '"')
+    else:
+        processed_content = str(content)
+
+    timestamp = datetime.datetime.now().strftime("%m%d%H%M")
+    first_10 = (
+        processed_content[:10]
+        .replace(' ', '')
+        .replace('/', '')
+        .replace('\\', '')
+        .replace(':', '')
+        .replace('```', '')
+    )
+    filename = f"{timestamp}_{first_10}.txt"
+    file_path = os.path.join(blog_dir, filename)
+
+    try:
+        with open(file_path, "w", encoding="utf-8") as f:
+            f.write(processed_content)
+        st.success(f"已导出到 {file_path}")
+    except Exception as e:
+        st.error(f"导出失败:{e}")
+
+
+# 侧边栏:输出模式
+output_mode = st.sidebar.selectbox("选择输出模式", ["流式输出 (Stream)", "非流式输出 (Non-stream)"])
+
+# ========== 高亮样式与收缩样式 ==========
+st.markdown("""
+<style>
+mark.hl {
+  background: #fff3a3;
+  color: inherit;
+  padding: 0 2px;
+  border-radius: 3px;
+}
+/* 收缩为 3 行预览 */
+.clamp-5 {
+  display: -webkit-box;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+  overflow: hidden;
+}
+.message-box {
+  margin-bottom: 0.25rem;
+}
+/* 让按钮文字不换行(包含导出按钮) */
+.stButton > button {
+  white-space: nowrap;
+}
+</style>
+""", unsafe_allow_html=True)
+
+# 侧边栏:当前对话搜索(仅高亮,不提供“上/下”和“清除定位”按钮)
+def message_contains_query(content, query: str) -> bool:
+    if not query:
+        return False
+    q = query.lower()
+    if isinstance(content, str):
+        return q in content.lower()
+    elif isinstance(content, list):
+        for part in content:
+            if part.get("type") == "text" and q in part.get("text", "").lower():
+                return True
+        return False
+    else:
+        return q in str(content).lower()
+
+
+search_query = st.sidebar.text_input("搜索当前对话内容")
+
+# 统计匹配数量(仅展示数量,不提供跳转)
+if search_query:
+    results = [i for i, m in enumerate(st.session_state.messages) if message_contains_query(m.get("content"), search_query)]
+    st.sidebar.write(f"共找到 {len(results)} 条匹配。")
+else:
+    st.sidebar.write("无匹配。")
+
+# 历史消息数量控制
+if "history_count" not in st.session_state:
+    st.session_state.history_count = 0
+
+max_history_count = len(st.session_state.messages) if st.session_state.messages else 10
+st.sidebar.slider(
+    "选择使用的历史消息数量(共" + str(len(st.session_state.messages)) + "条)",
+    min_value=0,
+    max_value=max_history_count,
+    value=st.session_state.history_count,
+    key="history_count"
+)
+st.sidebar.write(f"您选择的历史消息数量是: {st.session_state.history_count}")
+
+# 文件上传保存为 HTTP 路径
+BASE_URL = "http://117.50.195.224:8007/download/"
+
+
+def save_uploaded_file(uploaded_file):
+    unique_filename = f"{uuid.uuid4()}_{uploaded_file.name}"
+    file_path = os.path.join(upload_dir, unique_filename)
+    with open(file_path, "wb") as f:
+        f.write(uploaded_file.getvalue())
+    return f"{BASE_URL}{unique_filename}"
+
+
+# ========== 高亮辅助函数 ==========
+def highlight_text_safe(text: str, query: str) -> str:
+    if not query:
+        return html.escape(text)
+    pattern = re.compile(re.escape(query), re.IGNORECASE)
+    parts = pattern.split(text)
+    matches = pattern.findall(text)
+    out = []
+    for i, part in enumerate(parts):
+        out.append(html.escape(part))
+        if i < len(matches):
+            out.append(f"<mark class='hl'>{html.escape(matches[i])}</mark>")
+    return "".join(out)
+
+
+def render_content(content, query: str = None, clamp_lines: int = None):
+    # clamp_lines 为 None 时不收缩;为整数时收缩为该行数(当前实现为 5)
+    clamp_class = "clamp-5" if clamp_lines and clamp_lines > 0 else None
+
+    def render_text(txt: str):
+        if query:
+            html_text = highlight_text_safe(txt, query)
+            if clamp_class:
+                st.markdown(f"<div class='message-box {clamp_class}'>{html_text}</div>", unsafe_allow_html=True)
+            else:
+                st.markdown(html_text, unsafe_allow_html=True)
+        else:
+            if clamp_class:
+                st.markdown(f"<div class='message-box {clamp_class}'>{html.escape(txt)}</div>", unsafe_allow_html=True)
+            else:
+                st.markdown(txt)
+
+    if isinstance(content, str):
+        render_text(content)
+    elif isinstance(content, list):
+        for part in content:
+            if part.get("type") == "text":
+                txt = part.get("text", "")
+                render_text(txt)
+            elif part.get("type") == "image_url":
+                url = part["image_url"]["url"]
+                # 图片不收缩
+                if "base64," in url:
+                    base64_data = url.split("base64,")[1]
+                    image_bytes = base64.b64decode(base64_data)
+                    st.image(image_bytes, caption="上传的图片")
+                else:
+                    st.image(url, caption="上传的图片")
+            else:
+                # 其他类型直接显示
+                if clamp_class:
+                    st.markdown(f"<div class='message-box {clamp_class}'>{html.escape(str(content))}</div>", unsafe_allow_html=True)
+                else:
+                    st.markdown(str(content))
+    else:
+        if clamp_class:
+            st.markdown(f"<div class='message-box {clamp_class}'>{html.escape(str(content))}</div>", unsafe_allow_html=True)
+        else:
+            st.markdown(str(content))
+
+
+# ========== 渲染完整聊天消息(支持高亮与“历史自动收缩”/“搜索时展开”) ==========
+messages_len = len(st.session_state.messages)
+for idx, message in enumerate(st.session_state.messages):
+    # 搜索时全部展开;非搜索时,除了最后一条,其余收缩为 5 行
+    is_searching = bool(search_query)
+    default_clamp = None if is_searching else (5 if idx < messages_len - 1 else None)
+    is_expanded = (idx in st.session_state.expanded_messages)
+    clamp_lines = None if (is_searching or is_expanded) else default_clamp
+
+    with st.chat_message(message["role"]):
+        add_hit = bool(search_query and message_contains_query(message.get("content"), search_query))
+        render_content(
+            message.get("content"),
+            query=search_query if add_hit else None,
+            clamp_lines=clamp_lines
+        )
+
+        # 同一行显示“展开/收起”和“导出”按钮,并保证导出按钮文本不换行
+        spacer_col, export_col, expand_col = st.columns([8, 1, 1])
+        with expand_col:
+            if default_clamp and not is_searching:
+                if not is_expanded:
+                    if st.button("\>\>", key=f"expand_{idx}"):
+                        st.session_state.expanded_messages.add(idx)
+                        st.rerun()
+                else:
+                    if st.button("<<", key=f"collapse_{idx}"):
+                        if idx in st.session_state.expanded_messages:
+                            st.session_state.expanded_messages.remove(idx)
+                        st.rerun()
+        with export_col:
+            if message["role"] == "assistant":
+                export_key = f"export_{idx}"
+                if st.button("导出", key=export_key):
+                    export_message(message.get("content"))
+
+# 注:根据需求“去掉上,下和清除定位按钮,只高亮即可”,不再自动滚动到定位消息,也不提供定位跳转控件。
+
+# ========== 处理 chat_input ==========
+prompt_input = st.chat_input(
+    "What is up?",
+    accept_file="multiple",
+    file_type=["jpg", "jpeg", "png", "txt", "pdf", "doc", "docx"]
+)
+
+if prompt_input:
+    text_content = prompt_input.text or ""
+    uploaded_files = prompt_input.files
+    content = text_content
+    additional_prompt = ""
+
+    if uploaded_files:
+        content_parts = [{"type": "text", "text": text_content}]
+        for file in uploaded_files:
+            file_type = (file.type.split('/')[1].lower() if '/' in file.type else file.type.lower()).strip()
+            if file_type in ["jpg", "jpeg", "png"]:
+                image_bytes = file.getvalue()
+                base64_image = base64.b64encode(image_bytes).decode('utf-8')
+                content_parts.append({
+                    "type": "image_url",
+                    "image_url": {"url": f"data:image/{file_type};base64,{base64_image}"}
+                })
+            else:
+                http_url = save_uploaded_file(file)
+                additional_prompt += f"本次提问包含:{http_url} 文件\n"
+
+        content = content_parts if len(content_parts) > 1 else text_content
+
+        if additional_prompt:
+            if isinstance(content, list):
+                content[0]["text"] = (content[0]["text"] + "\n" + additional_prompt).strip()
+            else:
+                content = (content + "\n" + additional_prompt).strip()
+
+    # 用户发送新消息后,“历史的自动收缩”:清空展开状态集合
+    st.session_state.expanded_messages = set()
+
+    st.session_state.messages.append({"role": "user", "content": content})
+
+    with st.chat_message("user"):
+        # 最新消息不收缩
+        render_content(content, clamp_lines=None)
+
+    with st.chat_message("assistant"):
+        client.api_key = model_keys[selected_model]
+        stream = output_mode == "流式输出 (Stream)"
+
+        try:
+            if st.session_state.history_count > 0:
+                messages_to_send = [
+                    {"role": m["role"], "content": m["content"]}
+                    for m in st.session_state.messages[-st.session_state.history_count:]
+                ]
+            else:
+                messages_to_send = [{"role": "user", "content": content}]
+
+            res = client.chat.completions.create(
+                model=selected_model,
+                messages=messages_to_send,
+                stream=stream,
+            )
+
+            if stream:
+                assistant_message = st.write_stream(res)
+                if assistant_message:
+                    st.session_state.messages.append({"role": "assistant", "content": assistant_message})
+                else:
+                    st.warning("收到空响应。")
+            else:
+                if len(res.choices) > 0:
+                    assistant_message = res.choices[0].message.content
+                    if assistant_message:
+                        render_content(assistant_message)
+                        st.session_state.messages.append({"role": "assistant", "content": assistant_message})
+                    else:
+                        st.warning("收到空响应。")
+                else:
+                    st.warning("响应格式不正确,未找到有效消息。")
+
+            save_history()
+            # 确保新增的最后一条消息在有搜索时也能被高亮与计数,强制重渲染
+            st.rerun()
+        except Exception as e:
+            st.error(f"发生错误:{e}")
+
+# ========== 侧边栏操作 ==========
+st.sidebar.header("操作")
+if st.sidebar.button("New Chat"):
+    st.session_state.messages = []
+    st.session_state.session_id = load_session_id()
+    st.session_state.session_id += 1
+    save_session_id(st.session_state.session_id)
+    # 新建会话时重置展开状态
+    st.session_state.expanded_messages = set()
+    st.success("当前会话已清空。")
+
+st.sidebar.header("历史对话")
+show_history_files(st.session_state.current_page)

+ 3 - 0
chat_start.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+nohup streamlit run appchat.py --server.port 8001 &
+# nohup streamlit run appchat.py --server.port 8001 --server.sslCertFile cert.pem --server.sslKeyFile key.pem &

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
data/chat_history_0.json


+ 25 - 0
fastpdf.py

@@ -0,0 +1,25 @@
+from fastapi import FastAPI, HTTPException
+from fastapi.staticfiles import StaticFiles
+from fastapi.responses import FileResponse
+import os
+
+app = FastAPI()
+
+# 挂载 uploads 目录作为静态文件目录
+upload_dir = "uploads"
+if not os.path.exists(upload_dir):
+    os.makedirs(upload_dir)
+
+app.mount("/uploads", StaticFiles(directory=upload_dir), name="uploads")
+
+# 提供文件下载接口
+@app.get("/download/{filename}")
+async def download_file(filename: str):
+    file_path = os.path.join(upload_dir, filename)
+    if os.path.exists(file_path):
+        return FileResponse(file_path, filename=filename)
+    raise HTTPException(status_code=404, detail="File not found")
+
+if __name__ == "__main__":
+    import uvicorn
+    uvicorn.run(app, host="0.0.0.0", port=8007)

+ 669 - 0
nohup.out

@@ -0,0 +1,669 @@
+
+Collecting usage statistics. To deactivate, set browser.gatherUsageStats to false.
+
+
+  You can now view your Streamlit app in your browser.
+
+  Local URL: http://localhost:8001
+  Network URL: http://141.140.12.226:8001
+  External URL: http://141.140.12.226:8001
+
+INFO:     Started server process [2212431]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+INFO:     Uvicorn running on http://0.0.0.0:8007 (Press CTRL+C to quit)
+INFO:     95.214.55.246:58222 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:58228 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:58236 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:58246 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:58256 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:58266 - "POST /api/route HTTP/1.1" 404 Not Found
+INFO:     82.23.183.43:57226 - "POST / HTTP/1.1" 404 Not Found
+INFO:     82.23.183.43:35614 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     82.23.183.43:53012 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     82.23.183.43:44048 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     82.23.183.43:44052 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:49400 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:49402 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:49408 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:49414 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:49424 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:49440 - "POST /api/route HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     95.214.55.246:48242 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:48252 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:48262 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:48276 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:48288 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:48290 - "POST /api/route HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.58:62598 - "GET / HTTP/1.1" 404 Not Found
+INFO:     204.76.203.215:19262 - "GET /../../../../../../etc/passwd HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:53566 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:53582 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:53590 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:53598 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:53600 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:53612 - "POST /api/route HTTP/1.1" 404 Not Found
+INFO:     204.76.203.215:46260 - "GET /../../../../../../etc/passwd HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.78:59852 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.78:60368 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.78:65244 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.78:63560 - "GET / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:33916 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:33928 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:52808 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:52824 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:52850 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:52862 - "POST /api/route HTTP/1.1" 404 Not Found
+INFO:     Started server process [2230797]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.27:61914 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.211.27:59102 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2280114]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.64:63578 - "GET / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:54392 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:54402 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:54414 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:54416 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:57832 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:57840 - "POST /api/route HTTP/1.1" 404 Not Found
+INFO:     Started server process [2324246]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     147.185.133.65:62222 - "GET / HTTP/1.1" 404 Not Found
+INFO:     147.185.133.65:60100 - "GET / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:40222 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:40228 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:40236 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:40248 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:40256 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:40260 - "POST /api/route HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.141:63328 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2358909]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.14:57908 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.14:58686 - "GET / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:51638 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:51646 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:51650 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:51654 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:51656 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:51662 - "POST /api/route HTTP/1.1" 404 Not Found
+INFO:     96.126.117.80:32854 - "GET / HTTP/1.0" 404 Not Found
+INFO:     96.126.117.80:32970 - "GET /nice%20ports%2C/Trinity.txt.bak HTTP/1.0" 404 Not Found
+INFO:     96.126.117.80:52722 - "OPTIONS / HTTP/1.0" 404 Not Found
+INFO:     96.126.117.80:52734 - "OPTIONS / HTTP/1.0" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     96.126.117.80:53036 - "GET /devicedesc.xml HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     96.126.117.80:54044 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.150.212:64550 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2378456]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     95.214.55.246:36868 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:36872 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:36874 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:36880 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:36884 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:36900 - "POST /api/route HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.28:58746 - "GET / HTTP/1.1" 404 Not Found
+INFO:     116.178.130.14:52981 - "GET / HTTP/1.1" 404 Not Found
+INFO:     42.48.38.62:31288 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.167:62198 - "GET / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:56850 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:56860 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:56876 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:56880 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:56894 - "POST /app HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     Started server process [2403365]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.25:61024 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.211.25:58032 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.48:64810 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.48:62086 - "GET / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:57586 - "POST / HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:57592 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:57604 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:60056 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:60072 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     95.214.55.246:60078 - "POST /api/route HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     79.127.221.66:29206 - "GET / HTTP/1.1" 404 Not Found
+INFO:     123.144.24.52:59772 - "GET / HTTP/1.1" 404 Not Found
+INFO:     112.122.236.245:56701 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2421621]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     Started server process [2421697]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.157:60574 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.149.157:60916 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     195.184.76.143:34591 - "GET / HTTP/1.1" 404 Not Found
+INFO:     91.230.168.234:51393 - "GET /favicon.ico HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.211:64480 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.211.242:65326 - "GET /metrics HTTP/1.1" 404 Not Found
+INFO:     172.234.246.109:56622 - "GET / HTTP/1.0" 404 Not Found
+INFO:     172.234.246.109:49438 - "GET /nice%20ports%2C/Trinity.txt.bak HTTP/1.0" 404 Not Found
+INFO:     172.234.246.109:49614 - "OPTIONS / HTTP/1.0" 404 Not Found
+INFO:     172.234.246.109:49632 - "OPTIONS / HTTP/1.0" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     172.234.246.109:53818 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     Started server process [2429265]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     147.185.133.118:60532 - "GET / HTTP/1.1" 404 Not Found
+INFO:     147.185.133.118:61606 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.150.197:62084 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.150.197:57352 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.150.200:65078 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.150.200:58292 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     195.3.222.78:60494 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:40890 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:47556 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:53712 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:41902 - "POST /api/route HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.216:58584 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.166:61504 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.166:62504 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.45:65228 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2443328]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+INFO:     147.185.132.146:58170 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     147.185.132.146:65230 - "GET / HTTP/1.1" 404 Not Found
+INFO:     147.185.132.146:64886 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2443478]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     147.185.132.145:64720 - "GET /metrics HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.77:59110 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.77:61884 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.211.77:59964 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.194:57530 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.88:59996 - "GET /metrics HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.32:60262 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.149.32:59056 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.150.76:64748 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.150.76:65518 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2446935]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     Started server process [2446962]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+INFO:     92.63.197.50:50060 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [2448439]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     35.203.210.77:59474 - "GET /metrics HTTP/1.1" 404 Not Found
+INFO:     82.23.183.171:36914 - "POST / HTTP/1.1" 404 Not Found
+INFO:     87.236.176.227:50825 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.217:64320 - "GET / HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:53996 - "POST / HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:34634 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:41722 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:50372 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:58066 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     195.3.222.78:38468 - "POST /api/route HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     147.185.132.190:61924 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     50.116.26.161:37448 - "GET / HTTP/1.1" 404 Not Found
+INFO:     66.228.53.46:56822 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.150.229:65178 - "GET /metrics HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     91.230.168.145:37415 - "GET / HTTP/1.1" 404 Not Found
+INFO:     195.184.76.120:40857 - "GET /favicon.ico HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     147.185.133.12:60742 - "GET / HTTP/1.1" 404 Not Found
+INFO:     147.185.133.12:58336 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.18:63710 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.149.89:63704 - "GET /metrics HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.150.138:61330 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.150.138:64134 - "GET / HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:53978 - "GET / HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:51322 - "GET /manage/account/login HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:62682 - "GET /admin/index.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:28002 - "GET /index.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:61646 - "GET /%2BCSCOE%2B/logon.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:37326 - "GET /cgi-bin/login.cgi HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:58420 - "GET /login.htm HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:24036 - "GET /login.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:52694 - "GET /login.jsp HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:17048 - "GET /login HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:10912 - "GET /doc/index.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:8840 - "GET /remote/login HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:10170 - "GET //admin/login.asp HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:62082 - "GET /web/ HTTP/1.1" 404 Not Found
+INFO:     216.180.246.163:6570 - "GET //webpages/login.html HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.168:61744 - "GET / HTTP/1.1" 404 Not Found
+INFO:     147.185.133.205:61034 - "GET /metrics HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     204.76.203.215:30968 - "GET /../../../../../../etc/passwd HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.168:63432 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.210.168:64956 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.168:57818 - "GET / HTTP/1.1" 404 Not Found
+INFO:     87.236.176.207:54789 - "GET / HTTP/1.1" 404 Not Found
+INFO:     172.234.207.202:42852 - "GET / HTTP/1.0" 404 Not Found
+INFO:     172.234.207.202:42992 - "GET /nice%20ports%2C/Trinity.txt.bak HTTP/1.0" 404 Not Found
+INFO:     172.234.207.202:60252 - "OPTIONS / HTTP/1.0" 404 Not Found
+INFO:     172.234.207.202:60258 - "OPTIONS / HTTP/1.0" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     172.234.207.202:60596 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     Started server process [2455139]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.169:59138 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     35.203.211.169:62536 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.211.169:62652 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.149.40:60218 - "GET /metrics HTTP/1.1" 404 Not Found
+INFO:     43.162.122.222:57128 - "GET / HTTP/1.0" 404 Not Found
+INFO:     43.162.122.222:59736 - "GET / HTTP/1.0" 404 Not Found
+INFO:     43.162.122.222:33462 - "POST /sdk HTTP/1.1" 404 Not Found
+INFO:     43.162.122.222:33492 - "GET /nmaplowercheck1768823785 HTTP/1.1" 404 Not Found
+INFO:     43.162.122.222:33590 - "GET /HNAP1 HTTP/1.1" 404 Not Found
+INFO:     43.162.122.222:33624 - "GET /evox/about HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     43.162.122.222:38408 - "GET / HTTP/1.0" 404 Not Found
+INFO:     43.162.122.222:38436 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     147.185.133.194:64458 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     216.180.246.63:13382 - "GET / HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:49660 - "GET /manage/account/login HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:22220 - "GET /admin/index.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:35884 - "GET /index.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:26298 - "GET /%2BCSCOE%2B/logon.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:33528 - "GET /cgi-bin/login.cgi HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:33400 - "GET /login.htm HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:26668 - "GET /login.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:6432 - "GET /login.jsp HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:47732 - "GET /login HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:35220 - "GET /doc/index.html HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:46050 - "GET /remote/login HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:53892 - "GET //admin/login.asp HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:35454 - "GET /web/ HTTP/1.1" 404 Not Found
+INFO:     216.180.246.63:10068 - "GET //webpages/login.html HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     195.184.76.35:32847 - "GET / HTTP/1.1" 404 Not Found
+INFO:     91.230.168.123:60373 - "GET /favicon.ico HTTP/1.1" 404 Not Found
+INFO:     Started server process [2457972]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.150.43:59842 - "GET / HTTP/1.1" 404 Not Found
+INFO:     87.236.176.142:42539 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.210.136:60664 - "GET /metrics HTTP/1.1" 404 Not Found
+INFO:     87.236.176.105:59755 - "GET / HTTP/1.1" 404 Not Found
+
+Collecting usage statistics. To deactivate, set browser.gatherUsageStats to false.
+
+
+  You can now view your Streamlit app in your browser.
+
+  Local URL: http://localhost:8001
+  Network URL: http://141.140.12.226:8001
+  External URL: http://141.140.12.226:8001
+
+INFO:     Started server process [973309]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+INFO:     Uvicorn running on http://0.0.0.0:8007 (Press CTRL+C to quit)
+INFO:     Started server process [976616]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     Started server process [976811]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     Started server process [976877]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     89.42.231.182:4538 - "GET /../../../../../../etc/passwd HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     195.184.76.126:49597 - "GET / HTTP/1.1" 404 Not Found
+INFO:     195.184.76.34:60011 - "GET /favicon.ico HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     85.217.140.8:50546 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [1007021]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     85.217.149.30:57098 - "GET / HTTP/1.1" 404 Not Found
+INFO:     183.81.169.235:10178 - "GET /../../../../../../etc/passwd HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     Started server process [1060061]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     85.217.140.39:51984 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     193.32.162.28:34080 - "POST / HTTP/1.1" 404 Not Found
+INFO:     193.32.162.28:34186 - "POST /_next HTTP/1.1" 404 Not Found
+INFO:     193.32.162.28:34228 - "POST /api HTTP/1.1" 404 Not Found
+INFO:     193.32.162.28:34256 - "POST /_next/server HTTP/1.1" 404 Not Found
+INFO:     193.32.162.28:34268 - "POST /app HTTP/1.1" 404 Not Found
+INFO:     193.32.162.28:34276 - "POST /api/route HTTP/1.1" 404 Not Found
+INFO:     121.199.175.148:58310 - "GET / HTTP/1.0" 404 Not Found
+INFO:     121.199.175.148:58668 - "GET / HTTP/1.0" 404 Not Found
+INFO:     121.199.175.148:58672 - "POST /sdk HTTP/1.1" 404 Not Found
+INFO:     121.199.175.148:58670 - "GET /nmaplowercheck1774581223 HTTP/1.1" 404 Not Found
+INFO:     121.199.175.148:58684 - "GET /HNAP1 HTTP/1.1" 404 Not Found
+INFO:     121.199.175.148:58688 - "GET /evox/about HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     121.199.175.148:59134 - "GET / HTTP/1.0" 404 Not Found
+INFO:     121.199.175.148:59166 - "GET / HTTP/1.1" 404 Not Found
+INFO:     85.217.140.10:55656 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [1097105]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+WARNING:  Invalid HTTP request received.
+INFO:     85.11.183.25:47998 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.123:61962 - "GET / HTTP/1.1" 404 Not Found
+INFO:     147.185.133.229:61312 - "GET /metrics HTTP/1.1" 404 Not Found
+INFO:     31.14.32.7:51956 - "GET / HTTP/1.1" 404 Not Found
+INFO:     45.79.102.191:44358 - "GET / HTTP/1.0" 404 Not Found
+INFO:     45.79.102.191:34880 - "GET /nice%20ports%2C/Trinity.txt.bak HTTP/1.0" 404 Not Found
+INFO:     45.79.102.191:36816 - "OPTIONS / HTTP/1.0" 404 Not Found
+INFO:     45.79.102.191:36852 - "OPTIONS / HTTP/1.0" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     45.79.102.191:37172 - "GET /devicedesc.xml HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     45.79.102.191:57482 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+WARNING:  Invalid HTTP request received.
+INFO:     85.217.140.43:42706 - "GET / HTTP/1.1" 404 Not Found
+INFO:     Started server process [1211850]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     121.43.118.253:45560 - "GET / HTTP/1.1" 404 Not Found
+INFO:     121.43.118.253:45616 - "GET /favicon.ico HTTP/1.1" 404 Not Found
+INFO:     85.217.140.15:33164 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.30:58162 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.30:58720 - "GET / HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     162.216.149.30:60150 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.149.30:60358 - "GET / HTTP/1.1" 404 Not Found
+INFO:     162.216.149.30:61562 - "GET / HTTP/1.1" 404 Not Found
+INFO:     35.203.211.198:62388 - "GET /metrics HTTP/1.1" 404 Not Found
+WARNING:  Invalid HTTP request received.
+INFO:     195.184.76.6:48133 - "GET / HTTP/1.1" 404 Not Found
+INFO:     91.230.168.171:42961 - "GET /favicon.ico HTTP/1.1" 404 Not Found
+INFO:     Started server process [1243280]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.
+INFO:     Started server process [1250789]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio